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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xec]
cmp eax, dword [ecx + 8]
jbe 0x513136
sub esp, 0x16c
mov ecx, dword [esp + 0x178]
cmp ecx, 2
jl 0x513080
xor eax, eax
mov edx, eax
xor ebx, ebx
mov ebp, edx
mov esi, ebp
xor edi, edi
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x174]
mov dword [esp + 0x168], eax
mov eax, ebp
jmp 0x511b9a
lea ecx, [edx + 1]
mov edx, dword [esp + 0x164]
movzx edx, word [esp + 0x22]
movzx ebx, word [esp + 0x24]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x34]
cmp edx, esi
jge 0x511b65
cmp edx, ebp
jge 0x511b65
cmp edx, esi
jae 0x513128
mov ebx, dword [edi + edx*4]
cmp edx, ebp
jae 0x513128
mov ecx, dword [ecx + edx*4]
cmp ebx, ecx
je 0x511b20
test edx, edx
jle 0x511c37
mov ecx, dword [esp + 0x30]
cmp edx, ecx
ja 0x513121
mov ebx, dword [esp + 0x4c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], esi
mov esi, edx
mov edx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x178]
cmp eax, ecx
jg 0x51232b
mov dword [esp + 0x5c], eax
mov word [esp + 0x24], bx
mov dword [esp + 0x4c], edx
jge 0x51231e
jae 0x51312f
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x174]
mov ebp, dword [ebp + eax*4]
movzx ecx, byte [ebp]
cmp cl, 0x12
jne 0x512317
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
test ecx, ecx
jle 0x512317
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
je 0x5122ee
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x164], ecx
mov word [esp + 0x22], dx
cmp dx, bx
jne 0x511c37
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
jmp 0x511b3f
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x164]
movzx ebx, word [esp + 0x22]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x4c]
cmp eax, esi
jne 0x511c6e
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
mov esi, edi
mov edi, edx
mov edx, ebp
mov ebp, ebx
mov ebx, eax
jmp 0x511b86
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x160], edx
mov word [esp + 0x26], bx
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x511db9
mov ecx, dword [esp + 0x178]
cmp esi, ecx
jae 0x51311a
mov edi, ecx
mov ecx, dword [esp + 0x38]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x174]
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
jg 0x511d58
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0x104]
lea edx, [ebp + ecx*4]
mov dword [esp + 0x15c], edx
mov edx, dword [0x79e7b0]
test edx, edx
jne 0x511d23
mov dword [ebp + ecx*4], esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x160]
mov esi, ecx
mov edi, ebx
mov dword [esp + 0x168], ebp
mov ecx, dword [esp + 0x54]
movzx ebx, word [esp + 0x26]
mov ebp, dword [esp + 0x50]
jmp 0x511c5b
mov dword [esp + 0xac], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040d8c0
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x104]
mov edi, dword [esp + 0x178]
jmp 0x511cfb
mov dword [esp + 0x158], esi
lea eax, [0x5e1f40]
mov dword [esp], eax
mov ebp, dword [esp + 0x168]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004350a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x178]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x5c]
jmp 0x511cd7
mov dword [esp + 0x154], edi
mov ecx, dword [esp + 0x170]
mov edx, dword [ecx + 0x10]
lea ebx, [ecx + 0x10]
mov dword [esp + 0x150], ebx
test edx, edx
je 0x5122c3
mov ebp, dword [0x79e7b0]
mov esi, dword [edx + 0x10]
test ebp, ebp
jne 0x512277
mov dword [ecx + 0x10], esi
mov ebp, edi
mov edi, edx
mov esi, eax
xor eax, eax
call fcn.004485c1
mov dword [esp + 0xfc], edx
mov byte [edx], 3
movzx ecx, word [esp + 0x24]
mov word [edx + 2], cx
mov ecx, dword [edx + 0x1c]
mov edi, dword [edx + 0x14]
lea ebx, [edx + 0x14]
mov dword [esp + 0x14c], ebx
mov eax, dword [esp + 0x2c]
cmp eax, ecx
ja 0x51222b
cmp eax, ecx
ja 0x513113
mov dword [esp + 0x164], edi
mov dword [esp + 0xa8], ecx
mov dword [esp], edi
mov dword [esp + 4], ebp
shl eax, 2
mov dword [esp + 8], eax
call fcn.00448cd0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0x1c], edx
mov edx, dword [0x79e7b0]
test edx, edx
jne 0x512201
mov edx, dword [esp + 0x164]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x4c]
jmp 0x511e97
inc edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
jge 0x511f19
mov ebp, dword [esp + 0x178]
cmp edx, ebp
jae 0x51310c
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x174]
mov ebx, dword [ecx + edx*4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x170]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00513140
mov eax, dword [0x79e7b0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x511efa
mov dword [ebx + edx*4], ecx
jmp 0x511e8b
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040d8c0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
jmp 0x511e8b
mov eax, dword [esp + 0x4c]
cmp eax, ebx
ja 0x513105
mov edx, dword [esp + 0x17c]
cmp ebx, edx
ja 0x513105
mov ecx, dword [esp + 0x170]
mov dword [esp], ecx
sub edx, eax
mov esi, edx
neg edx
mov edi, eax
shl eax, 2
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x174]
add edx, eax
mov dword [esp + 4], edx
sub ebx, edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov byte [esp + 0x10], 0x13
call fcn.00511680
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x5121e1
mov dword [esp + 0xe4], edi
mov edx, dword [0x79e7b0]
mov ebx, dword [edi + 0x10]
test edx, edx
jne 0x5121a7
mov dword [ecx + 0x10], ebx
mov edx, eax
xor eax, eax
call fcn.004485c1
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xf4], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 0xc]
lea esi, [ecx + 4]
mov dword [esp + 0x148], esi
cmp ebp, 2
jl 0x512156
mov edi, 2
mov dword [esp + 0xa8], ebp
mov esi, dword [0x79e7b0]
lea ebp, [ebx + 4]
test esi, esi
jne 0x5120f8
mov ebp, dword [esp + 0xfc]
mov dword [ebx], ebp
mov dword [ebx + 4], edx
mov dword [ecx + 8], edi
mov edx, dword [esp + 0xa8]
mov dword [ecx + 0xc], edx
mov edx, dword [0x79e7b0]
test edx, edx
jne 0x5120d7
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0x38]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jg 0x512091
mov esi, dword [esp + 0x168]
mov dword [esp + 0x3c], ebp
mov edi, ebx
mov ebx, dword [0x79e7b0]
lea ebp, [esi + edx*4]
test ebx, ebx
jne 0x512065
mov dword [esi + edx*4], ecx
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x3c]
mov ebp, esi
mov ecx, edi
mov edi, dword [esp + 0x178]
jmp 0x511cff
mov dword [esp + 0x144], esi
mov dword [esp + 0xa8], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040d8c0
xor eax, eax
mov esi, dword [esp + 0x144]
mov edi, dword [esp + 0xa8]
jmp 0x51204d
lea eax, [0x5e1f40]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x38]
jmp 0x512037
mov eax, dword [esp + 0x148]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040d8c0
xor eax, eax
mov ecx, dword [esp + 0xf4]
jmp 0x512021
mov dword [esp + 0x140], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0x13c], ebp
mov dword [esp], ebx
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
call fcn.0040d8c0
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0xa4]
jmp 0x512003
lea eax, [0x5e1f40]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 2
call fcn.004350a0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0x148]
jmp 0x511fdf
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040d8c0
lea eax, [0x5e5b60]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.0040ddd0
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x511fb0
lea eax, [0x5e5b60]
mov dword [esp], eax
call fcn.0040d050
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x511fb7
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
jmp 0x511e85
lea edx, [0x5cd160]
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.004350a0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x14c]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x511e2c
mov dword [esp + 0xec], edx
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.0040d8c0
lea eax, [0x5e5b60]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
call fcn.0040ddd0
xor eax, eax
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x511dfd
lea eax, [0x5e5b60]
mov dword [esp], eax
call fcn.0040d050
mov edx, dword [esp + 4]
xor eax, eax
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x511dfd
mov edx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
movzx ecx, word [ecx + 2]
and ecx, 1
mov dword [esp + 0x28], ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x5c]
jmp 0x511c0d
mov ecx, ebp
jmp 0x511be7
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor ebx, ebx
jmp 0x511c47
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x3c]
jmp 0x51234d
lea edi, [esi + 1]
mov esi, edx
mov edx, ebp
mov ebp, ecx
mov ecx, eax
mov eax, edi
mov dword [esp + 0xac], ebx
mov dword [esp + 0x164], ebp
mov edi, dword [esp + 0x38]
cmp eax, edi
jg 0x5129e6
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x100], edx
mov dword [esp + 0x48], ecx
jge 0x5129df
jae 0x5130fe
mov ebp, dword [esp + 0x168]
mov esi, dword [ebp + eax*4]
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x512998
xor ebp, ebp
test edx, edx
jne 0x512873
cmp eax, ecx
jne 0x5123c5
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
mov esi, eax
jmp 0x512340
mov dword [esp + 0x108], ebp
lea esi, [ecx + 1]
cmp eax, esi
jne 0x5124eb
cmp ecx, edi
jae 0x5130f0
lea edx, [ebx + 1]
mov esi, dword [esp + 0x168]
mov ecx, dword [esi + ecx*4]
mov esi, dword [esp + 0xa0]
cmp edx, esi
jg 0x512487
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x104]
lea eax, [edi + ebx*4]
mov dword [esp + 0x138], eax
mov eax, dword [0x79e7b0]
test eax, eax
jne 0x512448
mov dword [edi + ebx*4], ecx
mov eax, dword [esp + 0x60]
mov ecx, edi
mov ebx, edx
mov edi, dword [esp + 0x38]
mov edx, esi
jmp 0x5123be
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040d8c0
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x104]
jmp 0x512435
mov dword [esp + 0x158], ecx
lea eax, [0x5e1f40]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.004350a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x60]
jmp 0x512417
mov esi, ecx
jmp 0x512513
lea ecx, [edx + 1]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x38]
cmp ecx, eax
jge 0x512592
cmp ecx, edi
jae 0x5130e9
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x168]
mov edx, dword [eax + ecx*4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x170]
mov dword [esp], edx
cmp ecx, esi
setne bl
mov byte [esp + 8], bl
call fcn.005133b0
mov eax, dword [0x79e7b0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x512573
mov dword [ebx + edx*4], ecx
jmp 0x5124ef
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040d8c0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
jmp 0x5124ef
cmp esi, eax
ja 0x5130e2
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
ja 0x5130e2
mov edx, dword [esp + 0x170]
mov dword [esp], edx
sub ecx, esi
mov ebp, esi
shl esi, 2
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
mov esi, dword [esp + 0x168]
add ecx, esi
mov dword [esp + 4], ecx
sub eax, ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov byte [esp + 0x10], 0x13
call fcn.00511680
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
lea edx, [ecx + 0x10]
test edi, edi
je 0x512853
mov dword [esp + 0xe8], edi
mov ebx, dword [0x79e7b0]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x512820
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.004485c1
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xf8], ecx
mov byte [ecx], 0x12
mov ebx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
lea esi, [ecx + 4]
mov dword [esp + 0x134], esi
cmp ebx, 2
jl 0x5127cf
mov edi, 2
mov eax, dword [0x79e7b0]
lea esi, [ebp + 4]
test eax, eax
jne 0x512765
mov eax, dword [esp + 0x100]
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
mov eax, dword [0x79e7b0]
test eax, eax
jne 0x512746
mov dword [ecx + 4], ebp
mov eax, dword [esp + 0xac]
lea edx, [eax + 1]
mov ebx, dword [esp + 0xa0]
cmp edx, ebx
jg 0x5126ff
mov ebp, dword [esp + 0x164]
mov esi, dword [0x79e7b0]
lea edi, [ebp + eax*4]
test esi, esi
jne 0x5126c7
mov dword [ebp + eax*4], ecx
mov esi, ebx
mov edi, ebp
mov ebp, dword [esp + 0x108]
jmp 0x512435
mov dword [esp + 0x130], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], ebx
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.0040d8c0
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x130]
jmp 0x5126b7
lea ecx, [0x5e1f40]
mov dword [esp], ecx
mov ebp, dword [esp + 0x164]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xf8]
jmp 0x5126a5
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.0040d8c0
mov ecx, dword [esp + 0xf8]
jmp 0x512689
mov dword [esp + 0x12c], ebp
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x128], esi
mov dword [esp], ebp
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xa8]
jmp 0x512672
lea eax, [0x5e1f40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edi, [eax + 2]
xor eax, eax
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x134]
jmp 0x512654
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040d8c0
lea eax, [0x5e5b60]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0040ddd0
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x512625
lea eax, [0x5e5b60]
mov dword [esp], eax
call fcn.0040d050
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x51262c
mov dword [esp + 0xd8], ebp
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.00519a70
movzx eax, byte [esp + 8]
test al, al
je 0x51298f
mov eax, dword [esp + 0x100]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x512966
mov edx, dword [eax + 0x18]
cmp edx, 1
jne 0x512966
mov edx, 1
test dl, dl
je 0x5128e8
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
jmp 0x512340
cmp cl, 0x11
jne 0x512920
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x512920
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
test ecx, ecx
jbe 0x5130f7
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
jne 0x512946
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x512946
mov ecx, 1
test cl, cl
jne 0x5128bb
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xd8]
mov edi, dword [esp + 0x38]
jmp 0x5123ac
cmp dl, 4
jne 0x512952
mov ecx, 1
jmp 0x51291c
cmp dl, 5
jne 0x51295e
mov ecx, 1
jmp 0x51291c
cmp dl, 6
sete cl
jmp 0x51291c
cmp cl, 4
jne 0x512975
mov edx, 1
jmp 0x5128b7
cmp cl, 5
jne 0x512984
mov edx, 1
jmp 0x5128b7
cmp cl, 6
sete dl
jmp 0x5128b7
mov eax, dword [esp + 0x100]
jmp 0x512920
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x5129d1
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 4]
test ebp, ebp
jle 0x5129d1
mov ebx, dword [ebx]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5129c3
mov ebx, dword [esp + 0xac]
xor ebp, ebp
jmp 0x5123a4
mov ebp, ebx
mov ebx, dword [esp + 0xac]
jmp 0x5123a4
mov ebx, dword [esp + 0xac]
mov ebp, esi
jmp 0x5123a4
xor ebp, ebp
jmp 0x5123ac
mov eax, ebp
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp 0x5129ff
inc ecx
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x168], ebp
mov dword [esp + 0x38], edi
cmp ecx, ebx
jg 0x512f06
jge 0x512a3e
jae 0x5130db
mov eax, dword [eax + ecx*4]
movzx ebx, byte [eax]
cmp bl, 3
jne 0x512edd
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x512edd
mov eax, 1
test al, al
jne 0x5129f0
mov dword [esp + 0x58], ecx
cmp ecx, edx
jne 0x512b2a
mov eax, dword [esp + 0xac]
cmp ecx, eax
jge 0x512b23
jae 0x5130b8
lea edx, [edi + 1]
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + ecx*4]
cmp edx, esi
jg 0x512aca
mov eax, dword [0x79e7b0]
lea ecx, [ebp + edi*4]
test eax, eax
jne 0x512a92
mov dword [ebp + edi*4], ebx
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov edi, edx
mov edx, eax
jmp 0x5129f0
mov dword [esp + 0x124], ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040d8c0
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x88]
jmp 0x512a82
mov dword [esp + 0x84], edi
mov dword [esp + 0x158], ebx
lea eax, [0x5e1f40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x158]
mov edi, dword [esp + 0x84]
jmp 0x512a70
mov edx, edi
jmp 0x512a82
lea eax, [edx + 1]
cmp ecx, eax
jne 0x512c05
mov eax, dword [esp + 0xac]
cmp edx, eax
jae 0x5130d4
lea ebx, [edi + 1]
mov eax, dword [esp + 0x164]
mov edx, dword [eax + edx*4]
cmp ebx, esi
jg 0x512bb6
mov dword [esp + 0x38], ebx
mov eax, dword [0x79e7b0]
lea ebx, [ebp + edi*4]
test eax, eax
jne 0x512b7f
mov dword [ebp + edi*4], edx
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov edx, dword [esp + 0x38]
mov edi, edx
jmp 0x512a53
mov dword [esp + 0x120], ebp
mov dword [esp + 0x80], esi
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040d8c0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x80]
jmp 0x512b74
mov dword [esp + 0x158], edx
lea eax, [0x5e1f40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x158]
mov edi, dword [esp + 0x38]
jmp 0x512b55
mov dword [esp + 0xa8], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0xac]
jmp 0x512c45
inc edx
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x164]
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
mov esi, eax
mov eax, edx
mov edx, esi
mov esi, dword [esp + 0x7c]
cmp eax, ecx
jge 0x512c8d
cmp edx, ebx
jae 0x5130cd
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + edx*4]
movzx edi, byte [esi]
cmp eax, ebx
jae 0x5130cd
mov ebp, dword [ebp + eax*4]
movzx ebx, byte [ebp]
xchg edi, eax
cmp al, bl
xchg edi, eax
jae 0x512c79
mov edx, eax
jmp 0x512c1d
jne 0x512c85
mov ebx, dword [esi + 0x18]
mov ebp, dword [ebp + 0x18]
cmp ebx, ebp
jl 0x512c75
mov ebx, edx
mov edx, eax
mov eax, ebx
jmp 0x512c1d
mov eax, dword [esp + 0x40]
cmp eax, ebx
jae 0x5130c6
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + eax*4]
lea edi, [ebp + eax*4]
cmp edx, ebx
jae 0x5130c6
mov dword [esp + 0x11c], edi
mov edi, dword [0x79e7b0]
mov ebx, dword [ebp + edx*4]
lea ecx, [ebp + edx*4]
test edi, edi
jne 0x512e92
mov dword [ebp + eax*4], ebx
mov dword [ebp + edx*4], esi
mov ecx, dword [esp + 0xa8]
jmp 0x512ce9
lea edx, [eax + 1]
mov eax, dword [esp + 0x40]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
cmp ecx, edx
jge 0x512da7
mov ebx, dword [ebp + eax*4]
mov esi, dword [esp + 0xac]
cmp ecx, esi
jae 0x5130bf
mov dword [esp + 0x44], ecx
mov eax, dword [ebp + ecx*4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00515240
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + eax*4]
test byte [edx], al
mov ebx, dword [0x79e7b0]
lea ebp, [edx + 0x10]
mov dword [esp + 0x118], ebp
mov esi, dword [esp + 0x170]
mov edi, dword [esi + 0x10]
lea ebp, [esi + 0x10]
test ebx, ebx
jne 0x512d55
mov dword [edx + 0x10], edi
mov dword [esi + 0x10], edx
jmp 0x512cde
mov dword [esp + 0xf0], edx
mov dword [esp + 0x114], ebp
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040d8c0
mov eax, dword [esp + 0x114]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x170]
jmp 0x512cde
mov ecx, dword [ebp + eax*4]
mov dword [esp], ecx
call fcn.00511460
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + edx*4]
mov ebp, dword [esp + 0x7c]
cmp ecx, ebp
jg 0x512e40
mov esi, dword [esp + 0x168]
mov edi, dword [0x79e7b0]
lea ebx, [esi + eax*4]
test edi, edi
jne 0x512e07
mov dword [esi + eax*4], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x58]
mov ebx, ebp
mov ebp, esi
mov esi, ebx
jmp 0x512b78
mov dword [esp + 0x110], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040d8c0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x110]
jmp 0x512df4
mov dword [esp + 0x158], edx
lea edx, [0x5e1f40]
mov dword [esp], edx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.004350a0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
jmp 0x512dd7
mov dword [esp + 0x158], esi
mov dword [esp + 0x10c], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040d8c0
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x164]
jmp 0x512cd5
cmp bl, 4
jne 0x512eec
mov eax, 1
jmp 0x512a3a
cmp bl, 5
jne 0x512efb
mov eax, 1
jmp 0x512a3a
cmp bl, 6
sete al
jmp 0x512a3a
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x512f12
mov ebp, ecx
mov ecx, ebx
cmp ecx, edi
jge 0x513064
mov dword [esp + 0x164], ebp
lea ebx, [ecx + 1]
cmp ebx, edi
jge 0x51305d
cmp ecx, edi
jae 0x5130b1
mov ebp, dword [eax + ecx*4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x513056
cmp ebx, edi
jae 0x5130b1
mov ebp, dword [eax + ecx*4 + 4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x512f66
mov ecx, dword [esp + 0x164]
jmp 0x512f0e
cmp ecx, edi
jae 0x5130aa
mov dword [esp + 0x70], ebx
lea ebp, [edx + 1]
mov ecx, dword [eax + ecx*4]
cmp ebp, esi
jg 0x512ff1
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb0]
mov eax, dword [0x79e7b0]
mov edi, dword [esp + 0x104]
lea ebx, [edi + edx*4]
test eax, eax
jne 0x512fcc
mov dword [edi + edx*4], ecx
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x104]
mov edx, ebp
jmp 0x512f0e
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040d8c0
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x104]
jmp 0x512faf
mov dword [esp + 0x64], edx
mov dword [esp + 0x158], ecx
lea eax, [0x5e1f40]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004350a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x168]
jmp 0x512f98
cmp ecx, edi
jmp 0x512f68
cmp ecx, edi
jmp 0x512f68
mov dword [esp + 0x180], ebp
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], esi
add esp, 0x16c
ret
mov eax, dword [esp + 0x174]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ecx
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
add esp, 0x16c
ret
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.004243c0
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.004243c0
ud2
call fcn.00424360
ud2
call fcn.004243c0
ud2
call fcn.00424360
ud2
call fcn.004243c0
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00446b60
jmp fcn.00511ac0