Function at 0x5d0bb0
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 0x5d2226
sub esp, 0x16c
mov ecx, dword [esp + 0x178]
cmp ecx, 2
jl 0x5d2170
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 0x5d0c8a
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 0x5d0c55
cmp edx, ebp
jge 0x5d0c55
cmp edx, esi
jae 0x5d2218
mov ebx, dword [edi + edx*4]
cmp edx, ebp
jae 0x5d2218
mov ecx, dword [ecx + edx*4]
cmp ebx, ecx
je 0x5d0c10
test edx, edx
jle 0x5d0d27
mov ecx, dword [esp + 0x30]
cmp edx, ecx
ja 0x5d2211
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 0x5d141b
mov dword [esp + 0x5c], eax
mov word [esp + 0x24], bx
mov dword [esp + 0x4c], edx
jge 0x5d140e
jae 0x5d221f
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x174]
mov ebp, dword [ebp + eax*4]
movzx ecx, byte [ebp]
cmp cl, 0x12
jne 0x5d1407
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
test ecx, ecx
jle 0x5d1407
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
je 0x5d13de
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 0x5d0d27
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
jmp 0x5d0c2f
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 0x5d0d5e
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 0x5d0c76
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 0x5d0ea9
mov ecx, dword [esp + 0x178]
cmp esi, ecx
jae 0x5d220a
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 0x5d0e48
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 [0x9cadb0]
test edx, edx
jne 0x5d0e13
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 0x5d0d4b
mov dword [esp + 0xac], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040ecd0
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x104]
mov edi, dword [esp + 0x178]
jmp 0x5d0deb
mov dword [esp + 0x158], esi
lea eax, [0x6f9be0]
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.004391a0
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 0x5d0dc7
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 0x5d13b3
mov ebp, dword [0x9cadb0]
mov esi, dword [edx + 0x10]
test ebp, ebp
jne 0x5d1367
mov dword [ecx + 0x10], esi
mov ebp, edi
mov edi, edx
mov esi, eax
xor eax, eax
call fcn.0044c881
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 0x5d131b
cmp eax, ecx
ja 0x5d2203
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.0044cf90
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 [0x9cadb0]
test edx, edx
jne 0x5d12f1
mov edx, dword [esp + 0x164]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x4c]
jmp 0x5d0f87
inc edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
jge 0x5d1009
mov ebp, dword [esp + 0x178]
cmp edx, ebp
jae 0x5d21fc
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.005d2230
mov eax, dword [0x9cadb0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x5d0fea
mov dword [ebx + edx*4], ecx
jmp 0x5d0f7b
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040ecd0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
jmp 0x5d0f7b
mov eax, dword [esp + 0x4c]
cmp eax, ebx
ja 0x5d21f5
mov edx, dword [esp + 0x17c]
cmp ebx, edx
ja 0x5d21f5
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.005d0770
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x170]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x5d12d1
mov dword [esp + 0xe4], edi
mov edx, dword [0x9cadb0]
mov ebx, dword [edi + 0x10]
test edx, edx
jne 0x5d1297
mov dword [ecx + 0x10], ebx
mov edx, eax
xor eax, eax
call fcn.0044c881
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 0x5d1246
mov edi, 2
mov dword [esp + 0xa8], ebp
mov esi, dword [0x9cadb0]
lea ebp, [ebx + 4]
test esi, esi
jne 0x5d11e8
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 [0x9cadb0]
test edx, edx
jne 0x5d11c7
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0x38]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jg 0x5d1181
mov esi, dword [esp + 0x168]
mov dword [esp + 0x3c], ebp
mov edi, ebx
mov ebx, dword [0x9cadb0]
lea ebp, [esi + edx*4]
test ebx, ebx
jne 0x5d1155
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 0x5d0def
mov dword [esp + 0x144], esi
mov dword [esp + 0xa8], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040ecd0
xor eax, eax
mov esi, dword [esp + 0x144]
mov edi, dword [esp + 0xa8]
jmp 0x5d113d
lea eax, [0x6f9be0]
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.004391a0
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 0x5d1127
mov eax, dword [esp + 0x148]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040ecd0
xor eax, eax
mov ecx, dword [esp + 0xf4]
jmp 0x5d1111
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.0040ecd0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
call fcn.0040ecd0
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0xa4]
jmp 0x5d10f3
lea eax, [0x6f9be0]
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.004391a0
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 0x5d10cf
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040ecd0
lea eax, [0x703be0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
call fcn.0040f1e0
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x5d10a0
lea eax, [0x703be0]
mov dword [esp], eax
call fcn.0040e460
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xe0]
jmp 0x5d10a7
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 4], eax
call fcn.0040ecd0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xfc]
jmp 0x5d0f75
lea edx, [0x6ca5c0]
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.004391a0
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 0x5d0f1c
mov dword [esp + 0xec], edx
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.0040ecd0
lea eax, [0x703be0]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
call fcn.0040f1e0
xor eax, eax
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x5d0eed
lea eax, [0x703be0]
mov dword [esp], eax
call fcn.0040e460
mov edx, dword [esp + 4]
xor eax, eax
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x5c]
jmp 0x5d0eed
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 0x5d0cfd
mov ecx, ebp
jmp 0x5d0cd7
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor ebx, ebx
jmp 0x5d0d37
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x168]
mov esi, dword [esp + 0x3c]
jmp 0x5d143d
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 0x5d1ad6
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0x100], edx
mov dword [esp + 0x48], ecx
jge 0x5d1acf
jae 0x5d21ee
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 0x5d1a88
xor ebp, ebp
test edx, edx
jne 0x5d1963
cmp eax, ecx
jne 0x5d14b5
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0xa0]
mov esi, eax
jmp 0x5d1430
mov dword [esp + 0x108], ebp
lea esi, [ecx + 1]
cmp eax, esi
jne 0x5d15db
cmp ecx, edi
jae 0x5d21e0
lea edx, [ebx + 1]
mov esi, dword [esp + 0x168]
mov ecx, dword [esi + ecx*4]
mov esi, dword [esp + 0xa0]
cmp edx, esi
jg 0x5d1577
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 [0x9cadb0]
test eax, eax
jne 0x5d1538
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 0x5d14ae
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.0040ecd0
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x104]
jmp 0x5d1525
mov dword [esp + 0x158], ecx
lea eax, [0x6f9be0]
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.004391a0
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 0x5d1507
mov esi, ecx
jmp 0x5d1603
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 0x5d1682
cmp ecx, edi
jae 0x5d21d9
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.005d24a0
mov eax, dword [0x9cadb0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
lea ebp, [ebx + edx*4]
test eax, eax
jne 0x5d1663
mov dword [ebx + edx*4], ecx
jmp 0x5d15df
mov dword [esp], ebp
mov dword [esp + 4], ecx
call fcn.0040ecd0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x168]
jmp 0x5d15df
cmp esi, eax
ja 0x5d21d2
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
ja 0x5d21d2
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.005d0770
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 0x5d1943
mov dword [esp + 0xe8], edi
mov ebx, dword [0x9cadb0]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x5d1910
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.0044c881
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 0x5d18bf
mov edi, 2
mov eax, dword [0x9cadb0]
lea esi, [ebp + 4]
test eax, eax
jne 0x5d1855
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 [0x9cadb0]
test eax, eax
jne 0x5d1836
mov dword [ecx + 4], ebp
mov eax, dword [esp + 0xac]
lea edx, [eax + 1]
mov ebx, dword [esp + 0xa0]
cmp edx, ebx
jg 0x5d17ef
mov ebp, dword [esp + 0x164]
mov esi, dword [0x9cadb0]
lea edi, [ebp + eax*4]
test esi, esi
jne 0x5d17b7
mov dword [ebp + eax*4], ecx
mov esi, ebx
mov edi, ebp
mov ebp, dword [esp + 0x108]
jmp 0x5d1525
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.0040ecd0
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x130]
jmp 0x5d17a7
lea ecx, [0x6f9be0]
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.004391a0
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 0x5d1795
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.0040ecd0
mov ecx, dword [esp + 0xf8]
jmp 0x5d1779
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.0040ecd0
mov eax, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
call fcn.0040ecd0
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0xa8]
jmp 0x5d1762
lea eax, [0x6f9be0]
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.004391a0
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 0x5d1744
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.0040ecd0
lea eax, [0x703be0]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0040f1e0
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x5d1715
lea eax, [0x703be0]
mov dword [esp], eax
call fcn.0040e460
mov ecx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0xdc]
jmp 0x5d171c
mov dword [esp + 0xd8], ebp
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.005d8b60
movzx eax, byte [esp + 8]
test al, al
je 0x5d1a7f
mov eax, dword [esp + 0x100]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x5d1a56
mov edx, dword [eax + 0x18]
cmp edx, 1
jne 0x5d1a56
mov edx, 1
test dl, dl
je 0x5d19d8
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 0x5d1430
cmp cl, 0x11
jne 0x5d1a10
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x5d1a10
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
test ecx, ecx
jbe 0x5d21e7
mov ecx, dword [edx]
movzx edx, byte [ecx]
cmp dl, 3
jne 0x5d1a36
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x5d1a36
mov ecx, 1
test cl, cl
jne 0x5d19ab
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 0x5d149c
cmp dl, 4
jne 0x5d1a42
mov ecx, 1
jmp 0x5d1a0c
cmp dl, 5
jne 0x5d1a4e
mov ecx, 1
jmp 0x5d1a0c
cmp dl, 6
sete cl
jmp 0x5d1a0c
cmp cl, 4
jne 0x5d1a65
mov edx, 1
jmp 0x5d19a7
cmp cl, 5
jne 0x5d1a74
mov edx, 1
jmp 0x5d19a7
cmp cl, 6
sete dl
jmp 0x5d19a7
mov eax, dword [esp + 0x100]
jmp 0x5d1a10
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x5d1ac1
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 4]
test ebp, ebp
jle 0x5d1ac1
mov ebx, dword [ebx]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5d1ab3
mov ebx, dword [esp + 0xac]
xor ebp, ebp
jmp 0x5d1494
mov ebp, ebx
mov ebx, dword [esp + 0xac]
jmp 0x5d1494
mov ebx, dword [esp + 0xac]
mov ebp, esi
jmp 0x5d1494
xor ebp, ebp
jmp 0x5d149c
mov eax, ebp
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp 0x5d1aef
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 0x5d1ff6
jge 0x5d1b2e
jae 0x5d21cb
mov eax, dword [eax + ecx*4]
movzx ebx, byte [eax]
cmp bl, 3
jne 0x5d1fcd
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x5d1fcd
mov eax, 1
test al, al
jne 0x5d1ae0
mov dword [esp + 0x58], ecx
cmp ecx, edx
jne 0x5d1c1a
mov eax, dword [esp + 0xac]
cmp ecx, eax
jge 0x5d1c13
jae 0x5d21a8
lea edx, [edi + 1]
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + ecx*4]
cmp edx, esi
jg 0x5d1bba
mov eax, dword [0x9cadb0]
lea ecx, [ebp + edi*4]
test eax, eax
jne 0x5d1b82
mov dword [ebp + edi*4], ebx
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov edi, edx
mov edx, eax
jmp 0x5d1ae0
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.0040ecd0
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x88]
jmp 0x5d1b72
mov dword [esp + 0x84], edi
mov dword [esp + 0x158], ebx
lea eax, [0x6f9be0]
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.004391a0
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 0x5d1b60
mov edx, edi
jmp 0x5d1b72
lea eax, [edx + 1]
cmp ecx, eax
jne 0x5d1cf5
mov eax, dword [esp + 0xac]
cmp edx, eax
jae 0x5d21c4
lea ebx, [edi + 1]
mov eax, dword [esp + 0x164]
mov edx, dword [eax + edx*4]
cmp ebx, esi
jg 0x5d1ca6
mov dword [esp + 0x38], ebx
mov eax, dword [0x9cadb0]
lea ebx, [ebp + edi*4]
test eax, eax
jne 0x5d1c6f
mov dword [ebp + edi*4], edx
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov edx, dword [esp + 0x38]
mov edi, edx
jmp 0x5d1b43
mov dword [esp + 0x120], ebp
mov dword [esp + 0x80], esi
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0040ecd0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xac]
cmp ecx, eax
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x80]
jmp 0x5d1c64
mov dword [esp + 0x158], edx
lea eax, [0x6f9be0]
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.004391a0
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 0x5d1c45
mov dword [esp + 0xa8], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0xac]
jmp 0x5d1d35
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 0x5d1d7d
cmp edx, ebx
jae 0x5d21bd
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + edx*4]
movzx edi, byte [esi]
cmp eax, ebx
jae 0x5d21bd
mov ebp, dword [ebp + eax*4]
movzx ebx, byte [ebp]
xchg edi, eax
cmp al, bl
xchg edi, eax
jae 0x5d1d69
mov edx, eax
jmp 0x5d1d0d
jne 0x5d1d75
mov ebx, dword [esi + 0x18]
mov ebp, dword [ebp + 0x18]
cmp ebx, ebp
jl 0x5d1d65
mov ebx, edx
mov edx, eax
mov eax, ebx
jmp 0x5d1d0d
mov eax, dword [esp + 0x40]
cmp eax, ebx
jae 0x5d21b6
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp + eax*4]
lea edi, [ebp + eax*4]
cmp edx, ebx
jae 0x5d21b6
mov dword [esp + 0x11c], edi
mov edi, dword [0x9cadb0]
mov ebx, dword [ebp + edx*4]
lea ecx, [ebp + edx*4]
test edi, edi
jne 0x5d1f82
mov dword [ebp + eax*4], ebx
mov dword [ebp + edx*4], esi
mov ecx, dword [esp + 0xa8]
jmp 0x5d1dd9
lea edx, [eax + 1]
mov eax, dword [esp + 0x40]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
cmp ecx, edx
jge 0x5d1e97
mov ebx, dword [ebp + eax*4]
mov esi, dword [esp + 0xac]
cmp ecx, esi
jae 0x5d21af
mov dword [esp + 0x44], ecx
mov eax, dword [ebp + ecx*4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.005d4330
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + eax*4]
test byte [edx], al
mov ebx, dword [0x9cadb0]
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 0x5d1e45
mov dword [edx + 0x10], edi
mov dword [esi + 0x10], edx
jmp 0x5d1dce
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.0040ecd0
mov eax, dword [esp + 0x114]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.0040ecd0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x170]
jmp 0x5d1dce
mov ecx, dword [ebp + eax*4]
mov dword [esp], ecx
call fcn.005d0550
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 0x5d1f30
mov esi, dword [esp + 0x168]
mov edi, dword [0x9cadb0]
lea ebx, [esi + eax*4]
test edi, edi
jne 0x5d1ef7
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 0x5d1c68
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.0040ecd0
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 0x5d1ee4
mov dword [esp + 0x158], edx
lea edx, [0x6f9be0]
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.004391a0
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 0x5d1ec7
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.0040ecd0
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
call fcn.0040ecd0
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x164]
jmp 0x5d1dc5
cmp bl, 4
jne 0x5d1fdc
mov eax, 1
jmp 0x5d1b2a
cmp bl, 5
jne 0x5d1feb
mov eax, 1
jmp 0x5d1b2a
cmp bl, 6
sete al
jmp 0x5d1b2a
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x5d2002
mov ebp, ecx
mov ecx, ebx
cmp ecx, edi
jge 0x5d2154
mov dword [esp + 0x164], ebp
lea ebx, [ecx + 1]
cmp ebx, edi
jge 0x5d214d
cmp ecx, edi
jae 0x5d21a1
mov ebp, dword [eax + ecx*4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5d2146
cmp ebx, edi
jae 0x5d21a1
mov ebp, dword [eax + ecx*4 + 4]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5d2056
mov ecx, dword [esp + 0x164]
jmp 0x5d1ffe
cmp ecx, edi
jae 0x5d219a
mov dword [esp + 0x70], ebx
lea ebp, [edx + 1]
mov ecx, dword [eax + ecx*4]
cmp ebp, esi
jg 0x5d20e1
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xb0]
mov eax, dword [0x9cadb0]
mov edi, dword [esp + 0x104]
lea ebx, [edi + edx*4]
test eax, eax
jne 0x5d20bc
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 0x5d1ffe
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040ecd0
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x104]
jmp 0x5d209f
mov dword [esp + 0x64], edx
mov dword [esp + 0x158], ecx
lea eax, [0x6f9be0]
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.004391a0
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 0x5d2088
cmp ecx, edi
jmp 0x5d2058
cmp ecx, edi
jmp 0x5d2058
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.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.004260c0
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.004260c0
ud2
call fcn.00426060
ud2
call fcn.004260c0
ud2
call fcn.00426060
ud2
call fcn.004260c0
ud2
call fcn.00426060
ud2
call fcn.00426060
ud2
call fcn.0044ae20
jmp fcn.005d0bb0