Function at 0x543838
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov esi, esp
mov dword [esi + 0xb8], ebp
mov edi, edx
mov dword [esi + 0x80], ecx
nop
mov dword [esi + 0xbc], esp
mov dword [esi + 0xc8], 0xffffffff
lea eax, [esi + 0xc0]
mov dword [esi + 0xc4], 0x547780
mov ecx, dword fs:[0]
mov dword [esi + 0xc0], ecx
mov dword fs:[0], eax
call fcn.00547740
xor eax, edi
mov edx, dword [0x850b08]
mov ebx, 0xfffff27c
sub ebx, eax
mov ecx, dword [0x850ae0]
sub ecx, ebx
add ecx, edx
call dword [0x834360]
call ecx
xor eax, edi
mov dword [esi + 4], eax
mov eax, dword [0x850b14]
mov edi, dword [0x850aec]
mov dword [esi + 0x14], ebx
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0x834360]
lea ebx, [esi + 0xa0]
mov ecx, ebx
call edi
mov dword [esi + 0xc8], 0x10
push 0
mov dword [esi + 0x68], ebx
push ebx
call fcn.0056e350
add esp, 8
nop
mov dword [esi + 0x7c], esp
push eax
sub esp, 0x1c
mov dword [esi + 0x40], esp
mov dword [esi + 0xbc], esp
mov ebx, dword [esi + 4]
mov edx, ebx
xor edx, 0xc189032c
mov eax, ebx
xor eax, 0xc1890328
mov ecx, ebx
xor ecx, 0xc1890333
mov dword [esi + 0xc], eax
mov dword [esi + 0x18], ecx
mov dword [esi + eax + 0x48], ecx
mov eax, ebx
xor eax, 0xc1890339
mov dword [esi + 0x1c], edx
mov dword [esi + 0x60], eax
mov dword [esi + edx + 0x48], eax
mov ecx, ebx
xor cl, 0x2b
movzx eax, byte [0x850a26]
mov byte [esi + 8], cl
cmp al, cl
je 0x542bd9
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0x5f
mov edx, eax
xor dl, 0x38
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850a26], dl
je 0x542b73
cmp al, byte [esi + 8]
jne 0x542b60
jmp 0x542bd9
nop
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0x406a0495
mov dword [esi + 0x10], eax
xor ebx, 0xc189033a
cmp ebx, 2
mov ecx, 1
cmovge ecx, ebx
xor edi, edi
nop word cs:[eax + eax]
nop
mov eax, dword [esi + 0x10]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x7d4e70]
xor al, byte [esi + 4]
xor al, 0xe7
add byte [edi + 0x850a20], al
inc edi
cmp ecx, edi
jne 0x542ba0
nop
movzx eax, byte [esi + 8]
xchg byte [0x850a26], al
mov dword [esi + 0xc8], 0xffffffff
nop
mov eax, dword [0x850b0c]
mov ecx, dword [0x850af0]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0x48]
mov edi, dword [esi + 0x60]
push edi
push 0x850a20
mov dword [esi + 0x74], eax
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x48], 0
mov dword [esi + 0xc8], 0xc
call fcn.0068da70
mov edi, eax
mov eax, dword [esi + 4]
mov edx, eax
xor edx, 0xc1890329
mov dword [esi + 0x84], edx
lea ecx, [esi + edx]
add ecx, 0x88
mov edx, eax
xor edx, 0xc1890336
mov dword [esi + 8], edx
xor al, 0xc
mov byte [esi + 0x24], al
lea eax, [esi + 0x28]
mov dword [esi + 0x6c], eax
mov ebx, eax
sub ebx, ecx
mov eax, dword [esi + 0x40]
mov dword [esi + 0x70], eax
mov edx, ecx
mov dword [esi + 0x64], ecx
nop word cs:[eax + eax]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x20], edx
mov eax, edi
xor edx, edx
div dword [esi + 8]
mov ebx, dword [esi + 0x10]
or dl, byte [esi + 0x24]
mov byte [ecx - 1], dl
mov edx, dword [esi + 0x20]
dec ecx
dec edx
inc ebx
cmp edi, dword [esi + 8]
mov edi, eax
jae 0x542c70
mov dword [esi + 0x20], ecx
mov dword [esi + 0x10], ebx
mov edi, dword [0x889b4c]
add edi, dword [esi + 0x64]
mov eax, dword [esi + 4]
xor eax, 0x1b5cd159
mov ecx, edi
xor ecx, eax
and edi, eax
mov dword [esi + 0x78], ecx
lea ebx, [ecx + edi*2]
mov dword [esi + 0x64], eax
sub ebx, eax
sub ebx, edx
mov edx, dword [esi + 0x1c]
mov dword [esi + edx + 0x28], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
mov dword [esi + eax + 0x28], ecx
mov byte [esi + 0x28], 0
cmp ebx, ecx
jbe 0x542d04
nop
mov dword [esi + 0xc8], 0xc
sub esp, 0xc
movzx eax, byte [esi + 0x44]
mov byte [esp + 4], al
mov eax, dword [esi + 0x20]
mov dword [esp + 8], eax
mov dword [esp], ebx
lea ecx, [esi + 0x28]
call fcn.0045afa0
jmp 0x542d47
nop
mov dword [esi + edx + 0x28], ebx
mov eax, dword [0x850b10]
mov ecx, dword [0x850ae4]
sub ecx, dword [esi + 0x14]
add ecx, eax
add edi, edi
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push ebx
push dword [esi + 0x20]
lea eax, [esi + 0x28]
push eax
call ecx
add esp, 0xc
mov ebx, dword [esi + 0x78]
add ebx, edi
sub ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x10]
mov byte [eax + ebx], 0
nop
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + eax + 0x28]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
cmp dword [esi + eax + 0x28], ecx
jbe 0x542d61
mov eax, dword [esi + 0x28]
mov dword [esi + 0x6c], eax
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + edx + 0x48]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + eax + 0x48]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x542da8
nop
mov dword [esi + 0xc8], 0xf
sub esp, 0x10
movzx eax, byte [esi + 0x88]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi + 0x6c]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x48]
call fcn.0045bd80
jmp 0x542df8
nop
mov dword [esi + 0x20], edi
add edi, ebx
mov dword [esi + 0x10], edi
mov dword [esi + edx + 0x48], edi
cmp eax, dword [esi + 0x18]
jbe 0x542dc0
mov eax, dword [esi + 0x48]
mov dword [esi + 0x74], eax
mov eax, dword [0x850b10]
mov ecx, dword [0x850ae4]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov edi, dword [esi + 0x74]
add ebx, edi
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push dword [esi + 0x20]
push dword [esi + 0x6c]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + eax + 0x28]
cmp ecx, dword [esi + 0x18]
jbe 0x542e4f
lea edx, [ecx + 1]
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xc1890cc3
cmp edx, eax
mov eax, dword [esi + 0x28]
jbe 0x542e45
mov edx, ebx
xor edx, 0x3e76fcc0
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xc189031c
cmp edi, edx
jae 0x5437c3
mov edx, ebx
xor edx, 0xc1890318
add ecx, edx
mov edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov ebx, dword [esi + 0x1c]
mov eax, dword [esi + ebx + 0x48]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + ecx + 0x48]
cmp edx, eax
jne 0x542e98
nop
mov dword [esi + 0xc8], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x7d4d56
mov dword [esp], 1
lea ecx, [esi + 0x48]
call fcn.0045bd80
jmp 0x542ecd
mov ecx, eax
xor ecx, 1
mov edi, eax
and edi, 1
lea ecx, [ecx + edi*2]
mov dword [esi + ebx + 0x48], ecx
cmp edx, dword [esi + 0x18]
jbe 0x542eb3
mov edx, dword [esi + 0x48]
jmp 0x542eb6
lea edx, [esi + 0x48]
mov ebx, dword [esi + 4]
xor bl, 0x11
mov byte [edx + eax], bl
mov byte [edx + ecx], 0
mov dword [esi + 0xc8], 0xc
call fcn.0068da50
mov ecx, eax
mov eax, dword [esi + 0x84]
lea ebx, [esi + eax]
add ebx, 0x88
xor edi, edi
nop word cs:[eax + eax]
nop
mov dword [esi + 0x10], ebx
mov eax, ecx
xor edx, edx
div dword [esi + 8]
mov ebx, dword [esi + 0x10]
or dl, byte [esi + 0x24]
mov byte [ebx - 1], dl
dec ebx
inc edi
cmp ecx, dword [esi + 8]
mov ecx, eax
jae 0x542ef0
mov edx, dword [esi + 0x1c]
mov dword [esi + edx + 0x28], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
mov dword [esi + eax + 0x28], ecx
mov byte [esi + 0x28], 0
cmp edi, ecx
jbe 0x542f51
nop
mov dword [esi + 0xc8], 0xc
sub esp, 0xc
movzx eax, byte [esi + 0x44]
mov byte [esp + 4], al
mov dword [esp + 8], ebx
mov dword [esp], edi
lea ecx, [esi + 0x28]
call fcn.0045afa0
jmp 0x542f85
mov dword [esi + edx + 0x28], edi
mov eax, dword [0x850b10]
mov ecx, dword [0x850ae4]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0x28]
push edi
push ebx
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x28], 0
nop
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + eax + 0x28]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
cmp dword [esi + eax + 0x28], ecx
jbe 0x542f9e
mov eax, dword [esi + 0x28]
jmp 0x542fa1
lea eax, [esi + 0x28]
mov dword [esi + 8], eax
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + edx + 0x48]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + eax + 0x48]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x542feb
nop
mov dword [esi + 0xc8], 0xe
sub esp, 0x10
movzx eax, byte [esi + 0x88]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x48]
call fcn.0045bd80
jmp 0x54303b
lea ecx, [ebx + edi]
mov dword [esi + edx + 0x48], ecx
cmp eax, dword [esi + 0x18]
mov dword [esi + 0x10], ecx
jbe 0x542fff
mov edx, dword [esi + 0x48]
jmp 0x543002
lea edx, [esi + 0x48]
mov dword [esi + 0x24], edx
mov eax, dword [0x850b10]
mov ecx, dword [0x850ae4]
sub ecx, dword [esi + 0x14]
add ecx, eax
add ebx, edx
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push edi
push dword [esi + 8]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
mov byte [ecx + eax], 0
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + eax + 0x28]
cmp ecx, dword [esi + 0x18]
jbe 0x543092
lea edx, [ecx + 1]
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xc1890cc3
cmp edx, eax
mov eax, dword [esi + 0x28]
jbe 0x543088
mov edx, ebx
xor edx, 0x3e76fcc0
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xc189031c
cmp edi, edx
jae 0x5437d3
mov edx, ebx
xor edx, 0xc1890318
add ecx, edx
mov edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + edi + 0x48]
mov ecx, dword [esi + 0xc]
mov ecx, dword [esi + ecx + 0x48]
cmp ecx, eax
jne 0x5430db
nop
mov dword [esi + 0xc8], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x7d4d56
mov dword [esp], 1
lea ecx, [esi + 0x48]
call fcn.0045bd80
jmp 0x543107
lea edx, [eax + 1]
mov dword [esi + edi + 0x48], edx
cmp ecx, dword [esi + 0x18]
jbe 0x5430ec
mov ecx, dword [esi + 0x48]
jmp 0x5430ef
lea ecx, [esi + 0x48]
mov edx, dword [esi + 4]
xor dl, 0x11
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], 0
mov dword [esi + 0xc8], 2
nop
mov dword [esi + 0xc8], 2
call fcn.0071ee91
mov ecx, edx
mov edx, dword [esi + 4]
lea edi, [edx + edx]
xor edi, 0x83120678
xor edx, 0xc1890358
imul edi, eax
imul ecx, edx
mul edx
add ecx, edx
add ecx, edi
mov dword [esi + 0xc8], 0xc
lea edx, [esi + 0x28]
push ecx
push eax
mov dword [esi + 8], edx
push edx
call fcn.00545ab0
add esp, 0xc
nop
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + eax + 0x28]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
cmp dword [esi + eax + 0x28], ecx
jbe 0x54316c
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x1c]
mov edx, dword [esi + ebx + 0x48]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + eax + 0x48]
mov ecx, eax
sub ecx, edx
cmp ecx, edi
jae 0x5431b3
nop
mov dword [esi + 0xc8], 0xd
sub esp, 0x10
movzx eax, byte [esi + 0x88]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x48]
call fcn.0045bd80
jmp 0x54321c
nop
mov ecx, dword [esi + 4]
xor ecx, 0xcee47c55
mov dword [esi + 0x24], edx
sub edx, ecx
mov dword [esi + 0x10], edi
add edx, edi
mov edi, edx
xor edi, ecx
and edx, ecx
lea ecx, [edi + edx*2]
mov dword [esi + 0x20], ecx
mov dword [esi + ebx + 0x48], ecx
cmp eax, dword [esi + 0x18]
jbe 0x5431e1
mov ebx, dword [esi + 0x48]
jmp 0x5431e4
lea ebx, [esi + 0x48]
mov eax, dword [0x850b10]
mov ecx, dword [0x850ae4]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov edi, dword [esi + 0x24]
add edi, ebx
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push dword [esi + 0x10]
push dword [esi + 8]
push edi
call ecx
add esp, 0xc
mov eax, dword [esi + 0x20]
mov byte [ebx + eax], 0
nop
mov eax, dword [esi + 0xc]
mov eax, dword [esi + eax + 0x28]
cmp eax, dword [esi + 0x18]
jbe 0x543280
lea edi, [eax + 1]
mov edx, dword [esi + 4]
mov ecx, edx
xor ecx, 0xc1890cc3
cmp edi, ecx
mov ecx, dword [esi + 0x28]
jbe 0x543276
mov edi, edx
xor edi, 0x3e76fcc0
mov ebx, dword [ecx + edi]
mov dword [esi + 8], ebx
mov ebx, edi
xor ebx, ecx
and edi, ecx
lea ecx, [ebx + edi*2]
mov ebx, dword [esi + 8]
sub ecx, ebx
mov edi, edx
xor edi, 0xc189031c
cmp ecx, edi
jae 0x5437e3
xor edx, 0xc1890318
add eax, edx
mov edi, eax
mov ecx, ebx
push edi
push ecx
call fcn.0071996d
add esp, 8
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + eax + 0x48]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + ecx + 0x48]
mov ecx, edx
sub ecx, edi
mov eax, dword [esi + 4]
mov ebx, eax
xor ebx, 0xc1890338
cmp ecx, ebx
nop
mov dword [esi + 0x20], ebx
jae 0x5432e6
nop
movzx ecx, byte [0x850a35]
xor al, 0xd0
mov byte [esi + 8], al
cmp cl, al
je 0x543380
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0x79
mov edx, eax
xor dl, 0x41
nop word [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850a35], dl
je 0x543314
cmp al, byte [esi + 8]
jne 0x5432d0
jmp 0x543380
lea ecx, [edi + ebx]
mov eax, dword [esi + 0x1c]
mov dword [esi + eax + 0x48], ecx
cmp edx, dword [esi + 0x18]
mov eax, edi
jbe 0x5432fc
mov edx, dword [esi + 0x48]
jmp 0x5432ff
lea edx, [esi + 0x48]
mov edi, dword [esi + 4]
xor edi, 0xa4f16612
mov dword [edx + eax], edi
mov byte [edx + ecx], 0
jmp 0x5433b0
nop
mov eax, dword [esi + 4]
xor eax, 0xd447f07
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x60]
cmp eax, 2
mov ebx, 1
cmovge ebx, eax
xor ecx, ecx
nop
mov edi, dword [esi + 0x60]
nop word cs:[eax + eax]
nop
mov eax, dword [esi + 0x10]
add eax, ecx
xor edx, edx
div dword [esi + 0x60]
not edx
movzx eax, byte [ecx + 0x850a30]
xor al, byte [edi + edx + 0x7d4e80]
xor al, byte [esi + 4]
xor al, 0xdf
mov byte [ecx + 0x850a30], al
inc ecx
cmp ebx, ecx
jne 0x543340
nop
movzx eax, byte [esi + 8]
xchg byte [0x850a35], al
mov dword [esi + 0xc8], 0xc
nop
mov dword [esi + 0xc8], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x850a30
lea ecx, [esi + 0x48]
call fcn.0045bd80
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x70]
mov dword [edx + ecx], 0
mov eax, dword [esi + 4]
mov edi, eax
xor edi, 0xc1890324
mov dword [esi + 0x24], edi
mov dword [edx + edi], 0
mov edx, dword [esi + 0x1c]
mov edx, dword [esi + edx + 0xa0]
mov dword [esi + 0x10], edx
xor eax, 0xc189033b
mov dword [esi + 8], eax
cmp dword [esi + ecx + 0xa0], eax
jbe 0x5433f9
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x68], eax
mov ebx, dword [esi + 0x40]
add ebx, dword [esi + 0x20]
mov edi, dword [esi + 4]
mov eax, edi
xor eax, 0xc1890334
cmp dword [esi + 0x10], eax
nop
mov dword [esi + 0x40], ebx
jae 0x543448
mov eax, dword [0x850b0c]
mov ecx, dword [0x850af0]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push dword [esi + 0x1c]
push dword [esi + 0x68]
push ebx
call ecx
add esp, 0xc
mov ecx, 7
jmp 0x543526
mov ecx, dword [esi + 0x10]
or ecx, dword [esi + 8]
cmp ecx, 0x7ffffffe
mov edx, 0x7ffffffe
cmovb edx, ecx
mov eax, edi
xor eax, 0xc18904c2
cmp ecx, eax
mov dword [esi + 0x20], edx
lea eax, [edx + edx]
jbe 0x5434d1
mov edx, edi
xor edx, 0xbe76fcd2
cmp ecx, edx
mov dword [esi + 0xc8], 0xa
jae 0x5437f3
mov ecx, edi
xor ecx, 0xc1890319
add eax, ecx
push eax
call fcn.0071993d
add esp, 4
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0xc189031f
mov edx, ecx
xor edx, eax
and ecx, eax
lea ecx, [edx + ecx*2]
mov edx, ebx
xor edx, ecx
mov edi, ebx
xor edi, 0x3e76fcdc
or edi, ecx
xor edx, 0xc1890323
and edi, edx
mov ecx, ebx
xor ecx, 0x3e76fcc0
mov dword [edi + ecx], eax
jmp 0x5434e9
add eax, 2
mov dword [esi + 0xc8], 0xa
push eax
call fcn.0071993d
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x40]
mov dword [eax], edi
mov eax, dword [0x850b0c]
mov ecx, dword [0x850af0]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov eax, dword [esi + 0x10]
lea ebx, [eax*2 + 2]
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
push ebx
push dword [esi + 0x68]
push edi
call ecx
add esp, 0xc
nop
mov ecx, dword [esi + 0x20]
nop
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x70]
mov eax, dword [esi + 0x10]
mov dword [edi + edx], eax
mov eax, dword [esi + 0x24]
mov dword [edi + eax], ecx
lea eax, [esi + 0x88]
mov dword [edi], eax
mov ecx, dword [esi + 4]
xor ecx, 0xc1890320
lea eax, [esi + 0x48]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x18]
cmp dword [esi + edx + 0x48], ecx
jbe 0x54355c
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + edx + 0x48]
add ecx, eax
mov dword [esi + edx + 0x28], 0
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov dword [esi + edx + 0x28], edi
mov word [esi + 0x28], 0
mov dword [esi + 0xc8], 0xb
lea edx, [esi + 0x28]
push 0
push edx
push ecx
push eax
call fcn.005727e0
add esp, 0x10
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp dword [esi + eax + 0x28], ecx
lea ecx, [esi + 0x28]
jbe 0x5435aa
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + eax + 0x28]
lea eax, [ecx + eax*2]
push eax
push ecx
push dword [esi + 0x40]
call fcn.00573c90
add esp, 0xc
nop
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + eax + 0x28]
cmp ecx, edx
jbe 0x54361e
lea edx, [ecx*2 + 2]
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xc1890cc3
cmp edx, eax
mov eax, dword [esi + 0x28]
jbe 0x543614
mov edx, ebx
xor edx, 0x3e76fcc0
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xc189031c
cmp edi, edx
jae 0x5437f8
add ecx, ecx
mov edx, ebx
xor edx, 0xc1890319
add edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov eax, dword [0x850b0c]
mov ecx, dword [0x850af0]
sub ecx, dword [esi + 0x14]
add ecx, eax
mov dword [esi + 0xc8], 0xffffffff
call dword [0x834360]
mov ebx, dword [esi + 0x24]
push ebx
mov edi, dword [esi + 0x40]
push edi
lea eax, [esi + 0x88]
push eax
call ecx
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x70]
mov dword [ecx + eax], 0
mov edx, dword [esi + 8]
mov dword [ecx + ebx], edx
mov word [edi], 0
mov esp, dword [esi + 0x7c]
mov dword [esi + 0xbc], esp
mov eax, dword [esi + eax + 0x48]
cmp eax, dword [esi + 0x18]
jbe 0x5436d3
lea edi, [eax + 1]
mov edx, dword [esi + 4]
mov ecx, edx
xor ecx, 0xc1890cc3
cmp edi, ecx
mov ecx, dword [esi + 0x48]
jbe 0x5436c9
mov edi, edx
xor edi, 0x3e76fcc0
mov ebx, dword [ecx + edi]
mov dword [esi + 0x10], ebx
mov ebx, edi
xor ebx, ecx
and edi, ecx
lea ecx, [ebx + edi*2]
mov ebx, dword [esi + 0x10]
sub ecx, ebx
mov edi, edx
xor edi, 0xc189031c
cmp ecx, edi
jae 0x543808
xor edx, 0xc1890318
add eax, edx
mov edi, eax
mov ecx, ebx
push edi
push ecx
call fcn.0071996d
add esp, 8
mov dword [esi + 0xc8], 9
lea ecx, [esi + 0x88]
push dword [esi + 0x80]
call fcn.00545530
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + eax + 0x88]
cmp ecx, dword [esi + 8]
jbe 0x54374f
lea edx, [ecx*2 + 2]
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xc1890cc3
cmp edx, eax
mov eax, dword [esi + 0x88]
jbe 0x543745
mov edx, ebx
xor edx, 0x3e76fcc0
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xc189031c
cmp edi, edx
jae 0x543818
add ecx, ecx
mov edx, ebx
xor edx, 0xc1890319
add edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + eax + 0xa0]
cmp ecx, dword [esi + 8]
jbe 0x5437af
lea edx, [ecx*2 + 2]
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xc1890cc3
cmp edx, eax
mov eax, dword [esi + 0xa0]
jbe 0x5437a5
mov edx, ebx
xor edx, 0x3e76fcc0
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xc189031c
cmp edi, edx
jae 0x543828
add ecx, ecx
xor ebx, 0xc1890319
add ebx, ecx
mov edx, ebx
push edx
push eax
call fcn.0071996d
add esp, 8
mov eax, dword [esi + 0xc0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [esi + 0xc8], 0
call fcn.006fce21
nop
mov dword [esi + 0xc8], 1
call fcn.006fce21
nop
mov dword [esi + 0xc8], 3
call fcn.006fce21
call fcn.00455870
nop
mov dword [esi + 0xc8], 4
call fcn.006fce21
nop
mov dword [esi + 0xc8], 5
call fcn.006fce21
nop
mov dword [esi + 0xc8], 6
call fcn.006fce21
nop
mov dword [esi + 0xc8], 7
call fcn.006fce21
lea esi, [ebp - 0xcc]
mov ebp, dword [esi + 0xb8]
jmp 0x542aea