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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c08b3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push esi
push edi
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
call fcn.00520260
mov edi, eax
cmp edi, ebx
je 0x519ee3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x3114]
cmp eax, 0xce
je 0x51a52c
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
or ecx, edx
je 0x51a4f9
cmp eax, 0x191
je 0x51abcf
cmp eax, 0x197
je 0x51abcf
cmp eax, 0x12e
jne 0x51a0b6
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
or edx, eax
je 0x51a0b6
mov eax, dword [esi + 0x84]
cmp eax, ebx
jne 0x519f53
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0059adab
mov dword [ebp - 0x14], 1
mov eax, dword [eax]
push 0x66acec
push eax
call fcn.0057ea00
mov edi, eax
mov al, byte [ebp - 0x14]
add esp, 8
test al, 1
je 0x519f7c
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x18]
and al, 0xfe
mov dword [ebp - 0x14], eax
call fcn.0059ad3d
cmp edi, ebx
je 0x51a0b6
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x38]
push edx
lea ecx, [ebp - 0x30]
push eax
lea edx, [ebp - 0x40]
push ecx
push edx
mov ecx, esi
call fcn.0051ff50
mov edi, eax
mov eax, dword [0x6754d4]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
push ecx
mov ecx, dword [ebp - 0x38]
push edx
mov edx, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebp - 0x40]
push eax
push ecx
push edx
lea eax, [ebp - 0x18]
push 0x66acc4
push eax
mov byte [ebp - 4], 1
call fcn.00593b08
mov ecx, dword [ebp - 0x18]
add esp, 0x28
push ecx
mov ecx, esi
call fcn.00508d80
cmp edi, ebx
je 0x51a01b
push 0x66acc0
mov ecx, esi
call fcn.00508d80
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.0059ad3d
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x28]
mov ecx, dword [esi + 0x18]
cmp eax, ecx
jne 0x51a09e
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi + 0x1c]
cmp ecx, eax
jne 0x51a09e
mov edx, dword [esi + 0x20]
mov ecx, dword [ebp - 0x30]
cmp edx, ecx
jne 0x51a09e
mov eax, dword [esi + 0x24]
mov edx, dword [ebp - 0x2c]
cmp eax, edx
jne 0x51a09e
mov eax, dword [ebp - 0x38]
sub eax, ecx
mov ecx, dword [ebp - 0x34]
sbb ecx, edx
mov edx, dword [ebp - 0x40]
cmp eax, edx
jne 0x51a09e
cmp ecx, dword [ebp - 0x3c]
jne 0x51a09e
push 0x66acbc
mov ecx, esi
call fcn.00508d80
mov dword [esi + 0x5c], 6
mov dword [esi + 0x78], ebx
mov ecx, dword [0x67b03c]
push 1
push ecx
mov ecx, esi
call fcn.00508cb0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.0059ad3d
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x66acb8
mov ecx, esi
call fcn.00508d80
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.0059ad3d
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
or edx, eax
jne 0x51a0e2
cmp dword [esi + 0x3114], 0xc8
jne 0x51a0e2
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0x2a0]
cmp eax, ebx
jne 0x51a0fc
mov dl, byte [esi + 0x3125]
test dl, dl
je 0x51a132
cmp dword [esi + 0x3114], 0xc8
jne 0x51a132
cmp eax, ebx
je 0x51a11c
mov eax, dword [esi + 0x30cc]
mov edx, dword [eax + 0x70]
push edx
push ebx
call fcn.0055dd40
mov eax, 0x7571
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x3114]
mov bl, 1
cmp eax, 0xc8
je 0x51a15d
cmp eax, 0x12e
je 0x51a15d
cmp eax, 0x12d
je 0x51a15d
cmp eax, 0x12f
je 0x51a15d
cmp eax, 0x133
jne 0x51a15f
xor bl, bl
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x30]
cmp ecx, edx
jne 0x51a194
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x34]
cmp edx, ecx
jne 0x51a194
cmp eax, 0x1a0
je 0x51a181
cmp eax, 0x196
jne 0x51a194
mov eax, dword [esi + 0x30cc]
test eax, eax
je 0x51a194
mov byte [eax + 0x1c8], 1
xor bl, bl
mov eax, dword [esi + 0x3114]
cmp eax, 0x12e
je 0x51a3fb
cmp eax, 0x12d
je 0x51a3fb
cmp eax, 0x12f
je 0x51a3fb
cmp eax, 0x133
je 0x51a3fb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, dword [0x67b074]
push ecx
mov ecx, dword [esi + 0x6c]
call fcn.0050c130
mov eax, dword [esi + 0x30cc]
test eax, eax
je 0x51a1f0
mov dword [eax + 0xf8], 0x7577
cmp dword [esi + 0x3114], 0x193
jne 0x51a263
mov eax, dword [esi + 0x30cc]
test eax, eax
je 0x51a263
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x51a225
mov edx, dword [esi + 0x80]
lea ecx, [ebp - 0x18]
mov eax, dword [edx]
push eax
call fcn.0059adab
or dword [ebp - 0x14], 2
mov eax, dword [eax]
push 0x6650b8
push eax
call fcn.0057ea00
mov edi, eax
mov al, byte [ebp - 0x14]
add esp, 8
test al, 2
je 0x51a246
lea ecx, [ebp - 0x18]
call fcn.0059ad3d
test edi, edi
je 0x51a263
mov ecx, dword [esi + 0x30cc]
mov eax, dword [ecx + 0xec]
test eax, eax
jne 0x51a261
mov edx, dword [ecx]
push 2
call dword [edx + 0xc]
xor bl, bl
mov al, byte [esi + 0x3127]
test al, al
jne 0x51a351
mov edx, dword [esi + 0x80]
or ecx, 0xffffffff
xor eax, eax
mov edi, dword [edx + 0xc8]
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x51a351
mov byte [esi + 0x3127], 1
mov eax, dword [0x6754d4]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x18]
push 0
push ecx
mov ecx, edx
mov byte [ebp - 4], 4
call fcn.0052b350
mov edx, dword [esi + 0x80]
mov eax, dword [edx + 0xc8]
push eax
mov eax, dword [ebp - 0x18]
push eax
call fcn.00587e70
add esp, 8
test eax, eax
je 0x51a345
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0xc8]
mov ecx, esi
push eax
call fcn.00519b60
test eax, eax
jne 0x51a303
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], al
call fcn.0059ad3d
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x66aca8
mov ecx, esi
mov byte [esi + 0x3128], 0
call fcn.00508d80
mov edx, dword [esi]
lea eax, [esi + 0x30c4]
push eax
mov ecx, esi
call dword [edx + 0x10]
lea ecx, [ebp - 0x18]
mov esi, eax
mov byte [ebp - 4], 0
call fcn.0059ad3d
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.0059ad3d
mov eax, dword [esi + 0x84]
test eax, eax
je 0x51a3aa
push 0x66ac94
mov ecx, esi
call fcn.00508d80
mov edi, dword [esi + 0x84]
test edi, edi
mov dword [ebp - 0x20], edi
je 0x51a3a0
lea ecx, [edi + 8]
mov byte [ebp - 4], 6
call fcn.0059ad3d
lea ecx, [edi + 4]
mov byte [ebp - 4], 5
call fcn.0059ad3d
mov ecx, edi
mov byte [ebp - 4], 0
call fcn.0059ad3d
push edi
call fcn.00597102
add esp, 4
mov dword [esi + 0x84], 0
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0x2a0]
test eax, eax
je 0x51abcf
mov al, byte [esi + 0x3125]
test al, al
je 0x51abcf
test bl, bl
je 0x51abcf
mov edx, dword [esi + 0x30cc]
mov eax, dword [edx + 0x70]
push eax
push 0
call fcn.0055dd40
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
mov ecx, esi
call fcn.0051fc40
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
call dword [edx + 0x18]
test edi, edi
je 0x51a424
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x30d3]
test al, al
je 0x51a444
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x310c]
test edx, edx
jne 0x51a464
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x51a488
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
mov ecx, esi
call fcn.00519b60
test eax, eax
jne 0x51a4aa
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x310c]
mov byte [ebp - 4], 2
push eax
call fcn.00597102
add esp, 4
jmp 0x51a4c8
xor eax, eax
lea ecx, [esi + 0x30c4]
mov dword [ebp - 4], eax
mov dword [esi + 0x310c], eax
mov eax, dword [esi]
push ecx
mov ecx, esi
mov byte [esi + 0x3128], 1
call dword [eax + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xc8
je 0x51a52c
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov eax, dword [esi + 0x30f8]
mov ecx, dword [esi + 0x6c]
push eax
call fcn.0050c130
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
mov ecx, esi
call fcn.0051fc40
mov edi, eax
cmp edi, ebx
je 0x51a554
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x30d3]
test al, al
je 0x51a7a0
mov edx, dword [esi + 0x30d4]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0x80]
not ecx
dec ecx
je 0x51a5b7
mov eax, dword [eax + 0xbc]
cmp eax, ebx
je 0x51a5cd
mov edi, edx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x51a5ac
test cl, cl
je 0x51a5a8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x51a5ac
add eax, 2
add edi, 2
test cl, cl
jne 0x51a588
xor eax, eax
jmp 0x51a5b1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x51a5f5
jmp 0x51a5cd
mov edi, dword [eax + 0xbc]
cmp edi, ebx
je 0x51a5f5
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x51a5f5
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov byte [esi + 0x30d3], 0
mov dword [esi + 0x5c], 0xe
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x3114]
cmp edx, 0xc8
jne 0x51a615
mov eax, dword [esi + 0x3130]
mov ecx, dword [esi + 0x3134]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
cmp edx, 0xce
jne 0x51a695
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
or eax, ecx
jne 0x51a64d
mov eax, dword [esi + 0x3130]
mov ecx, dword [esi + 0x3134]
mov edi, eax
or edi, ecx
je 0x51a64d
mov edi, dword [esi + 0x3140]
or edi, dword [esi + 0x3144]
jne 0x51a64d
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
cmp edx, 0xce
jne 0x51a695
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
or ecx, eax
jne 0x51a695
mov edi, dword [esi + 0x3140]
mov eax, dword [esi + 0x3144]
mov edx, edi
or edx, eax
je 0x51a68f
mov ecx, dword [esi + 0x3134]
mov edx, dword [esi + 0x3130]
cmp eax, ecx
jg 0x51a68f
jl 0x51a687
cmp edi, edx
jae 0x51a68f
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
jmp 0x51a695
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
cmp eax, ebx
mov byte [esi + 0x30d3], 0
jl 0x51a5db
jg 0x51a6bb
cmp ecx, ebx
jbe 0x51a5db
mov edi, 1
push edi
push eax
push ecx
mov ecx, dword [esi + 0x30cc]
call fcn.00548c50
mov ecx, dword [esi + 0x30cc]
call fcn.00548080
mov ecx, dword [esi + 0x30cc]
mov dword [ecx + 0x130], eax
mov eax, dword [esi + 0x30cc]
cmp dword [eax + 0x130], edi
jne 0x51a6fd
mov dword [eax + 0x130], 2
mov edx, dword [esi + 0x30cc]
mov dword [edx + 0x138], 2
mov eax, dword [esi + 0x30cc]
mov edx, dword [esi + 0x18]
mov ecx, dword [eax + 0x1cc]
mov dword [ecx + 0x18], edx
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0x30cc]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [eax + 0x1cc]
sub ecx, edi
sbb edx, ebx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
mov ecx, dword [esi + 0x30cc]
mov dword [esi + 0x78], ebx
mov dword [esi + 0x5c], 7
call fcn.0052aca0
cmp eax, ebx
je 0x51a5db
push 0x66a34c
mov ecx, esi
call fcn.00508d80
mov edx, dword [esi]
or eax, 0xffffffff
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
lea eax, [esi + 0x30c4]
mov dword [esi + 0x38], ebx
push eax
mov ecx, esi
mov dword [esi + 0x54], edi
mov dword [esi + 8], edi
mov dword [esi + 0x3c], ebx
call dword [edx + 0x10]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
cmp eax, ebx
jl 0x51ab04
jg 0x51a7b8
cmp ecx, ebx
jbe 0x51a855
cmp dword [esi + 0x3154], ebx
jg 0x51a855
jl 0x51a7d2
cmp dword [esi + 0x3150], ebx
jae 0x51a855
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + 0x2a0]
cmp eax, ebx
jne 0x51a82f
mov dl, byte [esi + 0x3125]
test dl, dl
jne 0x51a82b
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov eax, dword [0x67b074]
mov ecx, dword [esi + 0x6c]
push eax
call fcn.0050c130
mov esi, dword [esi + 0x30cc]
cmp esi, ebx
je 0x51a815
mov dword [esi + 0xf8], 0x7577
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebx
je 0x51a83f
mov edx, dword [esi + 0x30cc]
mov eax, dword [edx + 0x70]
push eax
push ebx
call fcn.0055dd40
mov eax, 0x7571
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebx
jl 0x51ab04
jg 0x51a867
cmp ecx, ebx
jbe 0x51ab04
mov edx, dword [esi + 0x3140]
mov edi, dword [esi + 0x3144]
mov ecx, edx
or ecx, edi
je 0x51ab04
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
cmp eax, ebx
jl 0x51ab04
jg 0x51a895
cmp ecx, ebx
jbe 0x51ab04
cmp edx, ecx
jne 0x51a8a1
cmp edi, eax
je 0x51a991
mov eax, dword [esi + 0x84]
cmp eax, ebx
jne 0x51a8c3
mov edx, dword [esi + 0x80]
lea ecx, [ebp - 0x18]
mov eax, dword [edx]
push eax
call fcn.0059adab
mov dword [ebp - 0x14], 4
mov eax, dword [eax]
push 0x66ac80
push eax
call fcn.0057ea00
mov edi, eax
mov al, byte [ebp - 0x14]
add esp, 8
test al, 4
je 0x51a8e4
lea ecx, [ebp - 0x18]
call fcn.0059ad3d
cmp edi, ebx
jne 0x51aaa4
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
mov eax, dword [esi + 0x3144]
mov edx, dword [esi + 0x3140]
add edi, 1
mov ecx, ebx
adc ecx, 0
cmp eax, ecx
jg 0x51aaa4
jl 0x51a918
cmp edx, edi
ja 0x51aaa4
add edx, 1
adc eax, 0
cmp ebx, eax
jl 0x51ab04
jg 0x51a931
cmp dword [esi + 0x18], edx
jbe 0x51ab04
mov ecx, dword [esi + 0x80]
xor eax, eax
mov edx, dword [ecx + 0xf0]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x51ab04
mov edi, dword [esi + 0x30e8]
mov eax, edx
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x51a97f
test cl, cl
je 0x51a97b
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x51a97f
add eax, 2
add edi, 2
test cl, cl
jne 0x51a957
xor eax, eax
jmp 0x51a984
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x51ab04
jmp 0x51aaa4
mov dl, byte [esi + 0x3125]
test dl, dl
je 0x51aa2e
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
cmp edi, ebx
jl 0x51ab04
jg 0x51a9b7
cmp eax, ebx
jbe 0x51ab04
mov ecx, dword [esi + 0x3148]
mov edx, dword [esi + 0x314c]
cmp ecx, eax
jne 0x51a9cf
cmp edx, edi
je 0x51ab04
cmp edx, ebx
jl 0x51ab04
jg 0x51a9e1
cmp ecx, ebx
jbe 0x51ab04
mov eax, dword [esi + 0x84]
cmp eax, ebx
jne 0x51aa03
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0059adab
mov dword [ebp - 0x14], 8
mov eax, dword [eax]
push 0x66ac80
push eax
call fcn.0057ea00
mov edi, eax
mov al, byte [ebp - 0x14]
add esp, 8
test al, 8
je 0x51aa24
lea ecx, [ebp - 0x18]
call fcn.0059ad3d
cmp edi, ebx
je 0x51ab04
jmp 0x51aaa6
mov edx, dword [esi + 0x3148]
mov edi, dword [esi + 0x314c]
sub ecx, 1
sbb eax, ebx
cmp edx, ecx
jne 0x51aa4b
cmp edi, eax
je 0x51ab04
cmp edi, ebx
jl 0x51ab04
jg 0x51aa5d
cmp edx, ebx
jbe 0x51ab04
mov eax, dword [esi + 0x84]
cmp eax, ebx
jne 0x51aa7f
mov edx, dword [esi + 0x80]
lea ecx, [ebp - 0x20]
mov eax, dword [edx]
push eax
call fcn.0059adab
mov dword [ebp - 0x14], 0x10
mov eax, dword [eax]
push 0x66ac80
push eax
call fcn.0057ea00
mov edi, eax
mov al, byte [ebp - 0x14]
add esp, 8
test al, 0x10
je 0x51aaa0
lea ecx, [ebp - 0x20]
call fcn.0059ad3d
cmp edi, ebx
je 0x51ab04
xor ebx, ebx
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov eax, dword [0x67b074]
mov ecx, dword [esi + 0x6c]
push eax
call fcn.0050c130
mov eax, dword [esi + 0x30cc]
cmp eax, ebx
je 0x51abcf
mov dword [eax + 0xf8], 0x7577
mov esi, dword [esi + 0x30cc]
cmp dword [esi + 0xec], ebx
jne 0x51abcf
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0xc]
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x84]
test eax, eax
je 0x51ab5d
mov eax, dword [esi + 0x3140]
mov ecx, dword [esi + 0x18]
cmp eax, ecx
jne 0x51ab8d
mov ecx, dword [esi + 0x3144]
mov eax, dword [esi + 0x1c]
cmp ecx, eax
jne 0x51ab8d
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
test ecx, ecx
jl 0x51ab4c
jg 0x51ab38
test eax, eax
jbe 0x51ab4c
mov edx, dword [esi + 0x3150]
cmp edx, eax
jne 0x51ab8d
mov eax, dword [esi + 0x3154]
cmp eax, ecx
jne 0x51ab8d
mov al, byte [esi + 0x3128]
test al, al
je 0x51ab5d
mov byte [esi + 0x3127], 0
mov dword [esi + 0x5c], 6
mov dword [esi + 0x78], 0
mov eax, dword [0x67b03c]
push 1
push eax
mov ecx, esi
call fcn.00508cb0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
mov eax, dword [0x67b074]
mov ecx, dword [esi + 0x6c]
push eax
call fcn.0050c130
mov eax, dword [esi + 0x30cc]
test eax, eax
je 0x51abcf
mov dword [eax + 0xf8], 0x7577
mov esi, dword [esi + 0x30cc]
mov eax, dword [esi + 0xec]
test eax, eax
jne 0x51abcf
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0xc]
mov eax, 0x7542
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret