Function at 0x51b190
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a8
mov esi, esp
mov dword [esi + 0x190], ebp
mov dword [esi + 0x14], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x194], esp
mov dword [esi + 0x1a0], 0xffffffff
lea eax, [esi + 0x198]
mov dword [esi + 0x19c], 0x53f2b0
mov ecx, dword fs:[0]
mov dword [esi + 0x198], ecx
mov dword fs:[0], eax
call fcn.0053ede0
mov edx, dword [0xb0af04]
mov ecx, dword [0xb0aef8]
mov edi, 0x8c0c
sub edi, eax
mov dword [esi + 0x10], edi
sub ecx, edi
add ecx, edx
call dword [0xb0836c]
call ecx
mov edx, eax
xor edx, 0xc50e8ed8
mov edi, eax
xor edi, 0xc50e8ec8
mov ecx, eax
xor ecx, 0xc50e8ec4
mov dword [esi], edi
mov dword [esi + edi + 0x78], 0
mov dword [esi + 0xc], eax
xor eax, 0xc50e8edb
mov dword [esi + 0x24], ecx
mov dword [esi + 0x1c], eax
mov dword [esi + ecx + 0x78], eax
mov dword [esi + 8], edx
mov word [esi + edx + 0x78], 0
mov dword [esi + 0x78], 0x79a0ac
mov dword [esi + 0x1a0], 6
lea ecx, [esi + 0xd8]
mov edx, 0x79a09c
call fcn.0053d6c0
mov edi, dword [esi + 8]
lea ecx, [esi + edi]
add ecx, 0xd8
mov ebx, dword [esi]
mov eax, dword [esi + ebx + 0xd8]
mov dword [esi + 0x20], eax
mov dword [esi + 0x38], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x1c]
cmp dword [esi + ecx + 0xd8], edx
mov eax, ebx
jbe 0x51b29f
mov edx, dword [esi + edi + 0xd8]
mov dword [esi + 4], edx
add edi, esi
add edi, 0x78
mov edx, dword [esi + eax + 0x78]
mov ebx, dword [esi + ecx + 0x78]
mov ecx, eax
mov dword [esi + 0x18], ebx
sub ebx, edx
mov eax, dword [esi + 0x20]
cmp ebx, eax
mov dword [esi + 0x2c], edi
jae 0x51b2e9
mov dword [esi + 0x1a0], 0xb
sub esp, 0x10
movzx ecx, byte [esi + 0x4c]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov ecx, dword [esi + 4]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov ecx, edi
call fcn.0052b9a0
jmp 0x51b327
lea ebx, [edx + eax]
mov dword [esi + 0x28], ebx
mov dword [esi + ecx + 0x78], ebx
cmp byte [0xb53078], 0
mov ecx, dword [edi]
mov ebx, edi
cmovne ebx, ecx
mov edi, eax
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x1c]
cmova ebx, ecx
lea ecx, [ebx + edx*2]
add edi, edi
push edi
push dword [esi + 4]
push ecx
call fcn.0077cce0
add esp, 0xc
mov eax, dword [esi + 0x28]
mov word [ebx + eax*2], 0
mov eax, dword [esi]
mov dword [esi + eax + 0x4c], 0
mov eax, dword [esi + 0x24]
mov dword [esi + eax + 0x4c], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esi + 4], eax
mov edi, ecx
mov eax, dword [esi + 0x1c]
cmp dword [ecx + 0x14], eax
mov edx, dword [esi + 0xc]
jbe 0x51b354
mov edi, dword [ecx]
mov dword [esi + 0x18], edi
mov eax, dword [esi + 8]
lea edi, [esi + eax]
add edi, 0x4c
mov eax, edx
xor eax, 0xc50e8ed4
mov dword [esi + 0x20], eax
mov ebx, dword [esi + 4]
cmp ebx, eax
mov dword [esi + 0x28], edi
jae 0x51b39e
mov eax, dword [esi + 0x18]
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
mov edx, dword [esi]
mov dword [esi + edx + 0x4c], ebx
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov dword [esi + ecx + 0x4c], eax
mov eax, ecx
mov dword [esi + 0x4c], 0x79a0ac
mov dword [esi + 0x18], edi
jmp 0x51b45d
mov eax, ebx
or eax, dword [esi + 0x1c]
cmp eax, 0x7ffffffe
mov ebx, 0x7ffffffe
cmovb ebx, eax
lea ecx, [ebx + ebx]
mov eax, edx
xor eax, 0xc50e8922
cmp ebx, eax
mov dword [esi + 0x30], ebx
jbe 0x51b412
mov eax, edx
xor eax, 0xbaf17132
mov dword [esi + 0x1a0], 0xb
cmp ebx, eax
jae 0x51c39d
mov eax, edx
xor eax, 0xc50e8ef9
mov edx, ecx
xor edx, eax
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
and eax, edx
lea ecx, [ecx + eax*2]
call fcn.0053d610
mov ecx, eax
mov eax, dword [esi + 0xc]
mov edx, eax
xor edx, 0xc50e8eff
add edx, ecx
xor eax, 0x3af1713c
and eax, edx
mov dword [eax - 4], ecx
jmp 0x51b424
add ecx, 2
mov dword [esi + 0x1a0], 0xb
call fcn.0053d610
mov edi, dword [esi + 0x28]
mov dword [edi], eax
mov ebx, dword [esi + 4]
lea ecx, [ebx + ebx]
add ecx, 2
push ecx
push dword [esi + 0x18]
push eax
call fcn.0077cce0
add esp, 0xc
mov edx, dword [esi]
mov dword [esi + edx + 0x4c], ebx
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x24]
mov dword [esi + ecx + 0x4c], eax
mov dword [esi + 0x4c], 0x79a0ac
mov eax, dword [edi]
mov dword [esi + 0x18], eax
mov eax, ecx
mov ecx, dword [esi + edx + 0x78]
mov eax, dword [esi + eax + 0x78]
mov edi, eax
sub edi, ecx
cmp edi, ebx
jae 0x51b49d
mov dword [esi + 0x1a0], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0xbc]
mov byte [esp + 4], al
mov dword [esp + 0xc], ebx
mov eax, dword [esi + 0x18]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov ecx, dword [esi + 0x2c]
call fcn.0052b9a0
jmp 0x51b4da
lea edi, [ecx + ebx]
mov dword [esi + edx + 0x78], edi
mov ebx, dword [esi + 0x2c]
cmp eax, dword [esi + 0x1c]
jbe 0x51b4b5
mov eax, ecx
mov ecx, dword [esi + 0x2c]
mov ebx, dword [ecx]
mov ecx, eax
lea ecx, [ebx + ecx*2]
mov eax, dword [esi + 4]
add eax, eax
push eax
push dword [esi + 0x18]
push ecx
call fcn.0077cce0
add esp, 0xc
mov word [ebx + edi*2], 0
mov dword [esi + 0x1a0], 0xc
lea ecx, [esi + 0xbc]
mov edx, 0x79a0a0
call fcn.0053d6c0
mov eax, dword [esi + 8]
lea ecx, [esi + eax]
add ecx, 0xbc
mov ebx, dword [esi]
mov eax, dword [esi + ebx + 0xbc]
mov dword [esi + 0x18], ecx
mov edi, dword [esi + 0x24]
mov edx, dword [esi + 0x1c]
cmp dword [esi + edi + 0xbc], edx
jbe 0x51b51b
mov ecx, dword [esi + 8]
mov ecx, dword [esi + ecx + 0xbc]
mov dword [esi + 4], ecx
mov edx, dword [esi + ebx + 0x78]
mov edi, dword [esi + edi + 0x78]
mov ebx, edi
sub ebx, edx
cmp ebx, eax
jae 0x51b55e
mov dword [esi + 0x1a0], 0xd
sub esp, 0x10
movzx edx, byte [esi + 0x94]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov ecx, dword [esi + 4]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov ecx, dword [esi + 0x2c]
call fcn.0052b9a0
jmp 0x51b594
lea ecx, [edx + eax]
mov ebx, ecx
mov dword [esi + 0x30], ecx
mov ebx, dword [esi]
mov dword [esi + ebx + 0x78], ecx
mov ebx, dword [esi + 0x2c]
cmp edi, dword [esi + 0x1c]
jbe 0x51b579
mov edi, dword [esi + 0x2c]
mov ebx, dword [edi]
lea edx, [ebx + edx*2]
add eax, eax
push eax
push dword [esi + 4]
push edx
call fcn.0077cce0
add esp, 0xc
mov eax, dword [esi + 0x30]
mov word [ebx + eax*2], 0
mov dword [esi + 0x1a0], 0xd
call sub.KERNEL32.dll_GetCurrentProcessId
lea ecx, [esi + 0x78]
push eax
call fcn.0052b4d0
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + edx + 0xbc]
cmp ecx, dword [esi + 0x1c]
jbe 0x51b64c
mov eax, dword [esi + 0x18]
mov edi, dword [eax]
lea eax, [ecx + ecx]
mov edx, eax
xor edx, 2
and ecx, 1
lea edx, [edx + ecx*4]
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0xc50e8123
cmp edx, ecx
jbe 0x51b611
mov ecx, dword [edi - 4]
mov edx, ebx
xor edx, 0x3af17120
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xc50e8efc
cmp edx, edi
jae 0x51c3b1
mov edx, ebx
xor edx, 0xc50e8ef9
add eax, edx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x51b616
mov dword [esi + 4], edi
mov dword [esi], edx
mov eax, dword [0xb0af28]
mov edi, dword [0xb0aef4]
sub edi, dword [esi + 0x10]
add edi, eax
xor ebx, 0xf33c19c5
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ebx
call edi
add esp, 4
mov edx, dword [esi + 0x24]
mov eax, dword [esi + edx + 0x4c]
cmp eax, dword [esi + 0x1c]
jbe 0x51b70f
mov ecx, dword [esi + 0x28]
mov edi, dword [ecx]
lea edx, [eax + eax]
add edx, 2
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0xc50e8123
cmp edx, ecx
jbe 0x51b6d4
mov ecx, dword [edi - 4]
cmp byte [0xb53228], 0
jne 0x51b69b
mov edx, ebx
xor edx, 0x3af17120
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xc50e8efc
cmp edx, edi
jae 0x51c3a2
add eax, eax
mov edx, ebx
xor edx, 0xa57c9dde
add eax, edx
add eax, dword [0xb53224]
mov edi, ebx
xor edi, 0xc50e8ef9
mov ebx, eax
xor ebx, edi
and edi, eax
sub ebx, edx
lea eax, [ebx + edi*2]
mov dword [esi], eax
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi + 4], ecx
jmp 0x51b6d9
mov dword [esi + 4], edi
mov dword [esi], edx
mov eax, dword [0xb0af28]
mov edi, dword [0xb0aef4]
sub edi, dword [esi + 0x10]
add edi, eax
xor ebx, 0xf33c19c5
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ebx
call edi
add esp, 4
mov edx, dword [esi + 0x24]
mov eax, dword [esi + edx + 0xd8]
cmp eax, dword [esi + 0x1c]
jbe 0x51b7b1
mov ecx, dword [esi + 0x38]
mov edi, dword [ecx]
lea edx, [eax + eax]
add edx, 2
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0xc50e8123
cmp edx, ecx
jbe 0x51b777
mov ecx, dword [edi - 4]
mov edx, ebx
xor edx, 0x3af17120
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xc50e8efc
cmp edx, edi
jae 0x51c3c0
add eax, eax
mov edx, ebx
xor edx, 0xc50e8ef9
add edx, eax
mov dword [esi], edx
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi + 4], ecx
mov edi, ebx
jmp 0x51b77e
mov dword [esi + 4], edi
mov edi, ebx
mov dword [esi], edx
mov eax, dword [0xb0af28]
mov ebx, dword [0xb0aef4]
sub ebx, dword [esi + 0x10]
add ebx, eax
xor edi, 0xf33c19c5
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push edi
call ebx
add esp, 4
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esi], ecx
mov eax, dword [eax]
mov ecx, dword [eax + 0x424]
mov edi, dword [edx + 0xc]
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 0x1c]
cmp dword [esi + eax + 0x78], edx
jbe 0x51b7db
mov eax, dword [esi + 0x2c]
mov ebx, dword [eax]
mov dword [esi + 0x1a0], 0xffffffff
call dword [0xb0836c]
mov dword [esi + 0x1a0], 6
sub esp, 0x28
mov dword [esp + 0x24], edi
mov eax, dword [esi]
mov dword [esp + 0x20], eax
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp], 0
call ecx
mov edx, dword [esi + 0x3c]
mov ecx, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx]
cmp dword [eax], 0
je 0x51c10a
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 8]
mov edx, ecx
mov dword [esi + 4], ecx
test ecx, ecx
je 0x51b84e
mov edx, dword [eax + 4]
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
cmp dword [edx + 0x14], eax
mov eax, dword [esi + 0xc]
jbe 0x51b861
mov edx, dword [edx]
mov edi, eax
xor edi, 0xc50e8efc
xor eax, 0xc50e8e9c
lea ecx, [esi + 0xd8]
push 1
push eax
mov dword [esi + 0x38], edi
push edi
push edx
call fcn.00532ea0
mov eax, dword [esi + 0xd8]
mov eax, dword [eax + 4]
mov ecx, dword [esi + eax + 0x110]
mov edi, dword [esi + 0xc]
mov eax, edi
xor eax, 0xc50e8ed3
mov dword [esi], eax
mov eax, edi
xor eax, 0xc50e8ed9
mov dword [esi + 0x14], eax
test ecx, ecx
mov dword [esi + 0x94], ecx
mov eax, dword [esi + 8]
sete byte [esi + eax + 0x94]
mov edx, edi
shl edx, 0x1d
xor edx, edi
mov dword [esi + 0x6c], edx
xor edx, 0x78e8718b
mov ecx, edi
shl ecx, 0x1f
xor ecx, edi
mov ebx, ecx
xor ebx, 0x7178e74
add ebx, edx
mov edx, edi
xor edx, 0x1f1fcb7d
mov eax, edi
xor eax, 0xe0e03482
add eax, edx
mov edx, edi
shl edx, 0x1e
xor edx, edi
mov dword [esi + 0xa8], edx
xor edx, 0xb9c12b97
add eax, edx
add eax, ebx
mov dword [esi + 0xa4], ecx
xor ecx, 0x463ed468
add eax, ecx
mov dword [esi + 0x5c], 0
mov ecx, dword [esi]
mov dword [esi + 0x60], ecx
mov byte [esi + 0x4c], 0
mov dword [esi + 0xbc], 0
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0xbc], 1
mov edx, dword [esi + 0x14]
mov byte [esi + edx + 0xbc], 0
mov ecx, dword [0xb0a2a4]
mov dword [esi + 0x44], ecx
add eax, dword [ecx]
mov dword [esi + 0x30], eax
mov eax, dword [0x79b654]
mov dword [esi + 0x28], eax
mov eax, dword [0xb0a2a8]
add eax, dword [eax]
mov dword [esi + 0x70], eax
mov byte [esi + edx + 0x94], 0
mov dword [esi + 0x1a0], 0xa
sub esp, 0x14
movzx eax, byte [esi + 0x48]
mov byte [esp + 0x10], al
movsd xmm0, qword [esi + 0xbc]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + 0x94]
movsd qword [esp], xmm0
lea ecx, [esi + 0x4c]
call fcn.005352c0
mov eax, dword [esi + 4]
cmp dword [esi + 0x5c], eax
jne 0x51ba0a
mov ecx, dword [esi]
cmp dword [esi + 0x60], ecx
mov eax, dword [esi + 0x4c]
lea ebx, [esi + 0x4c]
cmova ebx, eax
cmp byte [0xb53084], 0
cmovne ebx, eax
mov eax, dword [0xb0af0c]
mov edi, dword [0xb0aee4]
sub edi, dword [esi + 0x10]
add edi, eax
mov eax, dword [esi + 0xc]
xor eax, 0x5c6cdf3
mov dword [esi + 0x14], eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esi + 4]
call edi
mov ecx, dword [esi]
add esp, 8
test eax, eax
sete al
mov dword [esi + 0x14], eax
jmp 0x51ba13
mov dword [esi + 0x14], 0
mov ecx, dword [esi]
mov eax, dword [esi + 0x60]
cmp eax, ecx
jbe 0x51ba9e
mov edi, dword [esi + 0x4c]
lea edx, [eax + 1]
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0xc50e8123
cmp edx, ecx
jbe 0x51ba66
mov edx, ebx
xor edx, 0x3af17120
add edx, edi
mov ecx, dword [edi - 4]
sub edx, ecx
cmp edx, dword [esi + 0x38]
jae 0x51c3de
mov edx, ebx
xor edx, 0xc50e8ef8
add eax, edx
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x51ba6b
mov dword [esi + 4], edi
mov dword [esi], edx
mov eax, dword [0xb0af28]
mov edi, dword [0xb0aef4]
sub edi, dword [esi + 0x10]
add edi, eax
xor ebx, 0xf33c19c5
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ebx
call edi
add esp, 4
mov edi, dword [esi + 0xc]
mov eax, edi
xor eax, 0xc50e8eac
mov ebx, eax
mov dword [esi + 4], eax
mov eax, dword [esi + 0xd8]
mov eax, dword [eax + 4]
mov dword [esi + eax + 0xd8], 0x79ab28
mov eax, dword [esi + 0xd8]
mov eax, dword [eax + 4]
mov ecx, edi
xor ecx, 0x3af1714c
add ecx, eax
add eax, esi
add eax, 0xd8
mov edx, edi
xor edx, 0x3af17120
mov dword [edx + eax], ecx
lea eax, [esi + ebx]
add eax, 0xd8
mov dword [esi], eax
mov eax, dword [0xb0af10]
mov ebx, dword [0xb0aed8]
sub ebx, dword [esi + 0x10]
add ebx, eax
xor edi, 0xc50e8ecc
add edi, esi
add edi, 0xd8
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
mov eax, dword [esi + 4]
mov dword [esi + eax + 0xd8], 0x79a398
mov dword [esi + 0x1a0], 4
mov ecx, dword [esi]
call fcn.0053d6e0
movzx eax, byte [esi + 0x14]
mov edx, dword [esi + 0x3c]
mov ecx, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx]
cmp dword [eax], 0
jne 0x51c10a
movaps xmm0, xmmword [0x7995b0]
movups xmmword [0xb46ac7], xmm0
movups xmmword [0xb46ab7], xmm0
movups xmmword [0xb46aa7], xmm0
movups xmmword [0xb46a97], xmm0
mov edi, dword [0xb53338]
test edi, edi
je 0x51bbac
mov eax, dword [edi]
mov ebx, dword [eax]
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
push 1
call ebx
mov dword [0xb53338], 0
mov byte [0xb532f4], 1
cmp dword [0xb532cc], 0
mov ebx, dword [esi + 0xc]
jne 0x51bbf3
mov ecx, ebx
xor ecx, 0xc50e8bac
mov dword [esi + 0x1a0], 6
call fcn.0053d610
mov dword [esi + 0x1a0], 9
mov dword [esi], eax
mov ecx, eax
call fcn.005355f0
mov eax, dword [esi]
mov dword [0xb532cc], eax
mov ebx, dword [esi + 0xc]
mov edi, dword [0xb532cc]
mov eax, dword [edi + 0x414]
test eax, eax
mov dword [esi + 0x68], edi
je 0x51bc6c
cmp byte [0xb53084], 0
jne 0x51bc18
cmp dword [edi + 0x424], 1
jne 0x51bc29
push dword [edi + 0x418]
push 0
push eax
call fcn.0077d260
add esp, 0xc
mov ecx, dword [edi + 0x414]
test ecx, ecx
je 0x51bc6c
mov eax, dword [0xb0af20]
mov ebx, dword [0xb0aed0]
sub ebx, dword [esi + 0x10]
add ebx, eax
mov edi, dword [esi + 0xc]
xor edi, 0xf8092afb
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi], ecx
mov ecx, ebx
call dword [0xb0836c]
mov ecx, dword [esi]
mov edx, edi
mov edi, dword [esi + 0x68]
call ebx
mov ebx, dword [esi + 0xc]
mov dword [edi + 0x414], 0
mov eax, dword [0xb0a270]
lea edx, [eax + 1]
mov dword [0xb0a270], edx
mov ecx, ebx
xor ecx, 0x80d0a48c
mov edi, ebx
xor ebx, ebx
cmp dword [0xb0a290], ecx
sete bl
neg ebx
xor ebx, eax
mov dword [esi + 0x34], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0xa0], edx
mov dword [esi + 0x9c], ebx
test ebx, edx
mov ebx, edi
je 0x51c1bf
mov eax, dword [esi + 0x68]
mov dword [eax + 0x41c], 0
mov dword [eax + 0x418], 0
mov byte [eax + 0x420], 1
cmp dword [0xb532cc], 0
jne 0x51bd1e
mov ecx, ebx
xor ecx, 0xc50e8bac
mov dword [esi + 0x1a0], 6
call fcn.0053d610
mov dword [esi + 0x1a0], 8
mov dword [esi + 8], eax
mov ecx, eax
call fcn.005355f0
mov eax, dword [esi + 8]
mov dword [0xb532cc], eax
mov ebx, dword [esi + 0xc]
mov eax, dword [0xb532cc]
mov dword [esi], eax
mov edi, dword [0xb0a298]
mov ecx, ebx
xor ecx, 0xc1b68dc5
mov edx, dword [0x79a914]
mov eax, dword [0x79a910]
mov dword [esi + 8], edi
cmp edi, ecx
jne 0x51be3b
mov ecx, ebx
shr ecx, 3
mov dword [esi + 0x20], ecx
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x34]
shld edx, eax, cl
shl eax, cl
mov edi, ebx
shr edi, 2
mov dword [esi + 4], edi
xor edi, edi
test cl, 0x20
cmovne edx, eax
cmove edi, eax
mov dword [esi + 0x18], edi
xor dword [esi + 0x20], 0xdb06541d
mov eax, dword [esi + 0x6c]
xor eax, 0x71e089a6
mov edi, ebx
shr edi, 4
mov ecx, ebx
shl ebx, 0x1c
xor ebx, ecx
xor ebx, 0xce1f7659
xor edi, 0x300892d4
add ebx, eax
adc edi, dword [esi + 0x20]
sub ebx, dword [esi + 0x18]
sbb edi, edx
add ebx, 1
adc edi, 0
xor dword [esi + 0x14], 0x654e5dca
mov eax, dword [esi + 0xa4]
xor eax, 0x3bc33603
mov ecx, dword [esi + 4]
xor ecx, 0xc97546ec
mov edx, edi
shld edx, ebx, 1
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0xa8]
xor edx, 0xc43cc9fc
add edx, eax
adc ecx, dword [esi + 0x14]
lea eax, [ebx + ebx]
sub edx, eax
sbb ecx, dword [esi + 0x20]
xor ecx, edi
mov dword [esi + 4], ecx
xor edx, ebx
mov edi, dword [esi + 0xc]
mov eax, edi
shl eax, 4
xor eax, 0x6cdc1dec
mov ecx, edi
xor ecx, 0xcc0521cd
mov dword [esi + 0x14], ecx
mov ecx, edi
xor ecx, 0x6c5810f
xor edi, 0x33fade32
add edi, dword [esi + 0x14]
adc ecx, eax
add edi, 0xffffffff
adc ecx, 0xffffffff
xor edi, 1
mov eax, edi
sub eax, edx
mov edx, ecx
sbb edx, dword [esi + 4]
and edx, ecx
and eax, edi
lea edi, [ebx + ebx]
inc edi
mov ebx, dword [esi + 0x20]
jmp 0x51be9a
mov ecx, dword [esi + 0x9c]
test dword [esi + 0xa0], ecx
mov ecx, 0
setne cl
mov dword [esi + 4], ecx
lea ecx, [ebx + ebx]
xor ecx, 0x8cc11d14
mov dword [esi + 0x14], ecx
mov ecx, ebx
xor ebx, 0x94404740
lea edi, [ecx*4]
xor edi, 0xed19c423
xor ecx, 0x6bbfb8bf
add ecx, ebx
adc edi, dword [esi + 0x14]
add ecx, dword [esi + 4]
adc edi, 0
sub eax, dword [esi + 0x34]
sbb edx, dword [esi + 0x40]
mov ebx, edx
xor ebx, edi
or edx, edi
mov edi, eax
xor edi, ecx
or eax, ecx
not eax
not edx
mov ecx, dword [esi + 0xc]
xor ecx, 0x41eeeedc
cmp dword [esi + 8], ecx
sete cl
or eax, edi
or edx, ebx
and edx, eax
cmp edx, 0xffffffff
setne al
or al, cl
or al, byte [0xb53084]
and al, 1
mov byte [0xb53084], al
mov ecx, dword [esi]
mov ebx, dword [ecx + 0x2d8]
mov eax, dword [ecx + 0x2dc]
sub eax, ebx
test eax, eax
jle 0x51bf3e
mov eax, dword [esi + 0xc]
xor eax, 0xc50e8e4c
mov dword [esi + 4], eax
xor edi, edi
jmp 0x51bf07
inc edi
mov ebx, dword [ecx + 0x2d8]
mov eax, dword [ecx + 0x2dc]
sub eax, ebx
cdq
idiv dword [esi + 4]
cmp edi, eax
jge 0x51bf3e
lea eax, [edi + edi*8]
shl eax, 4
cmp dword [ebx + eax + 0x80], 0
je 0x51bef0
mov dword [esi + 8], edi
lea edi, [ebx + eax]
add edi, 0x7c
mov edx, dword [ebx + eax + 0x24]
mov dword [esi + 0x1a0], 6
push edi
call fcn.0053d880
mov edi, dword [esi + 8]
mov ecx, dword [esi]
add esp, 4
jmp 0x51bef0
mov eax, dword [ecx + 0x2f0]
sub eax, dword [ecx + 0x2ec]
test eax, eax
jle 0x51bf86
mov dword [esi + 0x1a0], 6
xor edx, edx
nop word [eax + eax]
mov dword [esi + 8], edx
push 0
call fcn.0053d880
mov ecx, dword [esi]
add esp, 4
mov edx, dword [esi + 8]
inc edx
mov eax, dword [ecx + 0x2f0]
sub eax, dword [ecx + 0x2ec]
sar eax, 2
cmp edx, eax
jl 0x51bf60
mov ebx, dword [0xb5327c]
test ebx, ebx
je 0x51c028
mov eax, dword [ebx + 0x14]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi], eax
mov eax, dword [0xb0af08]
mov edi, dword [0xb0aedc]
sub edi, dword [esi + 0x10]
add edi, eax
lea eax, [ebx + 0x14]
mov dword [esi + 4], eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 4]
push dword [esi]
push ecx
call edi
mov eax, dword [esi + 8]
mov dword [eax + 4], eax
mov dword [eax], eax
mov dword [eax + 8], eax
mov dword [ebx + 0x18], 0
mov eax, dword [ebx + 0x1c]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi], eax
mov eax, dword [0xb0af1c]
mov edi, dword [0xb0aef0]
sub edi, dword [esi + 0x10]
add edi, eax
lea eax, [ebx + 0x1c]
mov dword [esi + 4], eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 4]
push dword [esi]
push ecx
call edi
mov eax, dword [esi + 8]
mov dword [eax + 4], eax
mov dword [eax], eax
mov dword [eax + 8], eax
mov dword [ebx + 0x20], 0
mov byte [ebx + 0xd], 0
cmp dword [0xb532cc], 0
jne 0x51c065
mov ecx, dword [esi + 0xc]
xor ecx, 0xc50e8bac
mov dword [esi + 0x1a0], 6
call fcn.0053d610
mov dword [esi + 0x1a0], 7
mov dword [esi + 8], eax
mov ecx, eax
call fcn.005355f0
mov eax, dword [esi + 8]
mov dword [0xb532cc], eax
mov eax, dword [0xb532cc]
mov edi, dword [eax + 0x2fc]
test edi, edi
je 0x51c0bc
mov dword [esi + 8], eax
mov eax, dword [0xb0af00]
mov ebx, dword [0xb0aed4]
sub ebx, dword [esi + 0x10]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
mov eax, dword [0xb0af14]
mov ebx, dword [0xb0aeec]
sub ebx, dword [esi + 0x10]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
mov eax, dword [esi + 8]
mov dword [eax + 0x2fc], 0
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x1e0]
mov dword [esi + 8], eax
mov dword [esi + 0x1a0], 6
call sub.KERNEL32.dll_GetCurrentProcess
mov edi, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, dword [esi + 8]
call dword [0xb0836c]
mov dword [esi + 0x1a0], 6
push 0xffffffffffffffff
push edi
call ecx
mov eax, dword [esi + 0x24]
mov eax, dword [esi + eax + 0x78]
cmp eax, dword [esi + 0x1c]
jbe 0x51c1ab
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx]
lea edi, [eax + eax]
add edi, 2
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0xc50e8123
cmp edi, ecx
jbe 0x51c170
mov ecx, dword [edx - 4]
mov edi, edx
mov edx, ebx
xor edx, 0x3af17120
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xc50e8efc
cmp edx, edi
jae 0x51c3cf
add eax, eax
mov edi, ebx
xor edi, 0xc50e8ef9
add edi, eax
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi + 0x1c], ecx
jmp 0x51c173
mov dword [esi + 0x1c], edx
xor ebx, 0xf33c19c5
mov dword [esi + 0xc], ebx
mov eax, dword [0xb0af28]
mov ebx, dword [0xb0aef4]
sub ebx, dword [esi + 0x10]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [esi + 0xc]
call ebx
add esp, 4
mov eax, dword [esi + 0x198]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, ebx
xor eax, 0x761c0778
xor ecx, ecx
cmp dword [0xb0a294], eax
setne cl
shl ecx, 2
mov edx, dword [esi + 0x70]
sub edx, ecx
mov eax, dword [edx]
cmp dword [esi + 0x28], 0
jle 0x51c38a
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x44]
add ecx, edi
add ecx, 3
mov edi, edx
mov dword [esi + 0x38], ecx
add edi, eax
mov eax, ebx
xor eax, 0x7f93fdd4
mov dword [esi + 0x30], eax
mov eax, ebx
xor eax, 0x6096975b
mov ecx, ebx
xor ecx, 0x9f6968a4
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0x6c]
xor eax, 0x450e8edf
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0x20]
sub dword [esi + 8], eax
xor ebx, 0xa20af074
mov dword [esi + 0x44], ebx
mov dword [esi + 0xb8], 0
mov eax, dword [0xb0a284]
mov dword [esi + 0xb4], eax
xor eax, eax
mov dword [esi + 0x34], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x74], 0
jmp 0x51c293
mov ecx, dword [esi + 0x14]
xor dword [esi + 0x34], ecx
mov ecx, dword [esi + 4]
xor dword [esi + 0x40], ecx
mov ecx, eax
mov edi, dword [esi + 0x20]
xor ecx, edi
and eax, edi
lea eax, [ecx + eax*2]
cmp eax, dword [esi + 0x28]
mov edi, dword [esi]
jge 0x51bcc1
mov ecx, 8
mov edx, dword [esi + 0x30]
cmp dword [0xb0a29c], edx
jne 0x51c2b2
mov dword [0xb0a298], 0x5f61f4ff
mov ecx, 0xc
mov edx, dword [esi + 0x38]
lea ebx, [edx + eax]
mov dword [esi], edi
sub edi, ebx
mov ebx, dword [esi + 0x18]
sbb ebx, 0
cmp edi, ecx
sbb ebx, dword [esi + 0xb8]
mov ecx, dword [edx + eax]
mov ebx, dword [edx + eax + 4]
mov dword [esi + 4], ebx
mov dword [esi + 0x14], ecx
jge 0x51c34e
mov edx, edi
mov ecx, dword [esi + 0xac]
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne edx, ecx
mov ebx, 0xffffffff
mov ecx, edx
shl ebx, cl
test dl, 0x20
mov ecx, 0xffffffff
cmovne ecx, ebx
mov dword [esi + 0x18], 0
mov edx, 0
cmovne ebx, edx
not ecx
and dword [esi + 4], ecx
not ebx
and dword [esi + 0x14], ebx
mov ebx, dword [esi + 0x74]
neg ebx
mov edx, dword [esi + 0xb0]
mov ecx, edx
xor ecx, ebx
and ebx, edx
lea ecx, [ecx + ebx*2]
add edi, dword [esi + 8]
mov edx, edi
xor edx, eax
and edi, eax
lea eax, [edx + edi*2]
mov edx, ecx
shl ecx, 2
mov edi, dword [esi + 0x70]
sub edi, ecx
neg edx
mov dword [esi + 0x74], edx
add edi, dword [edi]
mov dword [esi], edi
mov ecx, dword [esi + 0xb4]
cmp ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0xc]
jne 0x51c270
mov ecx, eax
mov edi, dword [esi + 0x20]
sub ecx, edi
imul ecx, edi
mov edi, eax
shl edi, cl
mov dword [0xb0a29c], 0x3dbafafa
add eax, edi
cmp dword [esi + 0x28], eax
mov edi, dword [esi]
jg 0x51c293
jmp 0x51bcc1
mov dword [esi + 0x34], 0
mov dword [esi + 0x40], 0
jmp 0x51bcc1
call fcn.00529890
mov dword [esi + 0x1a0], 1
call fcn.00748ef1
mov dword [esi + 0x1a0], 0
call fcn.00748ef1
mov dword [esi + 0x1a0], 2
call fcn.00748ef1
mov dword [esi + 0x1a0], 5
call fcn.00748ef1
mov dword [esi + 0x1a0], 3
call fcn.00748ef1
nop dword [eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
mov eax, dword [0xb0af18]
mov edi, dword [0xb0aee8]
sub edi, dword [esi + 0x10]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0xd8]
call edi
add esp, 0x28
pop ebp
ret