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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xd0]
cmp eax, dword [ecx + 8]
jbe 0x5d95bf
sub esp, 0x150
lea eax, [0x697300]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
mov edx, dword [esp + 0x158]
mov dword [esp + 4], edx
call fcn.005e5c90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
lea edx, [0x65a4a0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x10], eax
call fcn.005e6980
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x5d76b6
mov eax, dword [esp + 0x154]
test byte [eax], al
lea edi, [eax + 0x1c8]
mov esi, dword [esp + 0xe4]
call fcn.004641ac
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 8]
test edx, edx
je 0x5d7531
mov edx, dword [ecx + 0xc]
test edx, edx
jne 0x5d754e
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov byte [eax + 0x2a9], 1
mov edx, dword [eax + 0x2bc]
movzx edx, byte [edx + 0x27]
test dl, dl
jne 0x5d7699
mov edx, dword [ecx + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005e5c90
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
lea edi, [esp + 0x114]
xor eax, eax
call fcn.00463d49
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x154]
mov dword [esp], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call fcn.005d6ee0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0x2c]
lea edi, [esp + 0x114]
lea esi, [esp + 0xc]
call fcn.0046421a
lea edi, [esp + 0xf8]
lea esi, [esp + 0x114]
call fcn.0046421a
test eax, eax
jne 0x5d767d
mov eax, dword [esp + 0x154]
lea edi, [eax + 0x210]
mov ecx, dword [0x8ef4b0]
test ecx, ecx
jne 0x5d7614
lea esi, [esp + 0x114]
call fcn.0046421a
jmp 0x5d7631
lea eax, [0x692bc0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x114]
mov dword [esp + 8], eax
call fcn.00411050
call fcn.0040c7a0
mov eax, dword [0x8ef4b0]
mov ecx, dword [esp]
test eax, eax
jne 0x5d7652
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x238], ecx
jmp 0x5d7666
mov ebx, dword [esp + 0x154]
lea edi, [ebx + 0x238]
mov eax, ecx
call fcn.00463ab0
mov ebp, dword [esp + 0x104]
mov esi, dword [esp + 0x48]
lea ebp, [ebp + esi + 0x14]
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x5d76e3
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
add esp, 0x150
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], edx
add esp, 0x150
ret
movzx esi, word [esp + 0x32]
lea eax, [esi + 1]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
mov ebx, ecx
mov ecx, esi
mov dword [esp + 0x54], ecx
cmp word [esp + 0x112], ax
jbe 0x5d7a27
mov esi, dword [ebx + 0x2ac]
add esi, 0xfffffffc
cmp ebp, esi
jbe 0x5d7726
mov edi, dword [0x8c9058]
mov ebx, dword [0x8c905c]
mov word [esp + 0x88], ax
xor eax, eax
mov dword [esp + 0x38], eax
movzx eax, word [esp + 0x88]
jmp 0x5d7767
mov dword [esp + 0x7c], esi
mov edi, dword [ebx + 0x28c]
mov esi, dword [ebx + 0x288]
mov ebx, dword [ebx + 0x290]
cmp ebp, edi
ja 0x5d95b5
sub edi, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebx, ebp
cmp edi, 3
jbe 0x5d95a9
mov esi, dword [ebx + esi]
mov dword [esp + 0x38], esi
xor edi, edi
xor ebx, ebx
mov esi, dword [esp + 0x7c]
test edi, edi
jne 0x5d7a12
lea ebx, [ebp + 4]
cmp esi, ebx
jae 0x5d7786
mov ebx, dword [0x8c9058]
mov esi, dword [0x8c905c]
xor edi, edi
jmp 0x5d77e2
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x154]
mov edi, dword [esi + 0x28c]
mov ebp, dword [esi + 0x288]
mov esi, dword [esi + 0x290]
cmp edi, ebx
jb 0x5d95a0
mov dword [esp + 0xd8], ebp
mov ebp, dword [esp + 0x48]
sub esi, ebp
sub edi, ebp
add esi, 0xfffffffc
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
lea esi, [edi - 4]
cmp esi, 3
jbe 0x5d9594
mov edi, dword [esp + 0xd8]
mov edi, dword [ebx + edi]
xor ebx, ebx
xor esi, esi
test ebx, ebx
jne 0x5d79fd
mov word [esp + 0x32], ax
mov dword [esp + 0x34], edi
mov dword [esp + 0x58], edx
lea ebx, [ebp + 8]
mov ebp, dword [esp + 0x154]
xor esi, esi
xor esi, esi
mov dword [esp + 0xc4], esi
xor esi, esi
mov dword [esp + 0x44], esi
xor esi, esi
jmp 0x5d944f
mov ebp, dword [esp + 0x154]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x44]
cmp esi, 2
jne 0x5d785d
mov ebx, dword [esp + 0xc4]
cmp word [ebx], 0x7e23
je 0x5d784f
cmp esi, 2
jne 0x5d7859
cmp word [ebx], 0x2d23
jne 0x5d7855
mov edx, dword [esp + 0x38]
jmp 0x5d785f
mov edi, ecx
jmp 0x5d785f
mov edi, ecx
jmp 0x5d785f
mov edi, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], edi
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 8]
mov dword [esp], ebp
mov ebx, dword [esp + 0x38]
add ecx, ebx
mov dword [esp + 4], ecx
call fcn.005e5c90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 0x290]
mov ebx, dword [ecx + 0x288]
mov ebp, dword [esp + 0x34]
lea esi, [ebp + eax]
cmp edx, esi
jb 0x5d957b
cmp eax, esi
ja 0x5d9574
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0xd8], ebx
mov eax, dword [ecx + 0x238]
lea edx, [0x66eca0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xc], ebx
call fcn.004105d0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x40]
sub ecx, edx
mov dword [edi + 8], ecx
mov ebx, dword [0x8ef4b0]
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0xd8]
add ecx, edx
test ebx, ebx
jne 0x5d7922
mov dword [edi], ecx
jmp 0x5d792d
mov edx, eax
mov eax, ecx
call fcn.00463ab0
mov eax, edx
mov ebx, dword [esp + 0x154]
mov ebp, dword [ebx + 0x230]
inc ebp
mov esi, dword [ebx + 0x22c]
mov ecx, ebx
mov ebx, dword [ebx + 0x234]
cmp ebx, ebp
jae 0x5d79af
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x685560]
mov dword [esp + 0x10], eax
call fcn.0044acd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x234], edx
mov edx, dword [0x8ef4b0]
test edx, edx
jne 0x5d799a
mov dword [ebx + 0x22c], eax
jmp 0x5d79a5
lea edi, [ebx + 0x22c]
call fcn.00463ab0
mov esi, eax
mov ebp, ecx
mov eax, dword [esp + 0x34]
mov ecx, ebx
mov dword [ecx + 0x230], ebp
lea ebx, [ebp - 1]
shl ebx, 4
mov ebp, dword [esp + 0x38]
mov dword [esi + ebx], ebp
mov dword [esi + ebx + 4], eax
mov ebp, dword [esp + 0x44]
mov dword [esi + ebx + 0xc], ebp
mov ebp, dword [0x8ef4b0]
lea edi, [esi + ebx + 8]
test ebp, ebp
jne 0x5d79ec
mov ebp, dword [esp + 0xc4]
mov dword [esi + ebx + 8], ebp
jmp 0x5d76cb
mov eax, dword [esp + 0xc4]
call fcn.00463ab0
jmp 0x5d76cb
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], esi
add esp, 0x150
ret
mov dword [esp + 0x160], edi
mov dword [esp + 0x164], ebx
add esp, 0x150
ret
test ecx, ecx
je 0x5d7be9
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 8]
mov dword [esp], ebx
add eax, edx
mov dword [esp + 4], eax
call fcn.005e5c90
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
call fcn.005d6dc0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc8], ecx
lea edi, [esp + 0xa8]
lea esi, [esp + 0xc]
call fcn.00464224
lea edi, [esp + 0x90]
lea esi, [esp + 0xa8]
call fcn.00464224
test eax, eax
jne 0x5d7bcc
mov ecx, dword [esp + 0x154]
lea edi, [ecx + 0x23c]
lea esi, [esp + 0xa8]
call fcn.00464224
mov ecx, dword [esp + 0x154]
movzx edx, byte [ecx + 0x242]
test edx, 1
seta dl
and edx, 1
test dl, dl
je 0x5d7ae2
mov edx, 4
jmp 0x5d7ae7
mov edx, 2
mov dword [ecx + 0x258], edx
movzx edx, byte [ecx + 0x242]
test edx, 2
seta dl
and edx, 1
test dl, dl
je 0x5d7b0b
mov edx, 4
jmp 0x5d7b10
mov edx, 2
mov dword [esp + 0x60], eax
mov dword [ecx + 0x25c], edx
movzx edx, byte [ecx + 0x242]
test edx, 4
seta dl
and edx, 1
test dl, dl
je 0x5d7b38
mov edx, 4
jmp 0x5d7b3d
mov edx, 2
mov dword [ecx + 0x260], edx
lea eax, [0x691cc0]
mov dword [esp], eax
lea edx, [esp + 0x90]
mov dword [esp + 4], edx
call fcn.00409410
mov eax, dword [esp + 8]
lea ecx, [0x691cc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004c1310
mov eax, dword [esp + 8]
mov dword [esp + 0x78], eax
call fcn.0040c7a0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov ecx, dword [0x8ef4b0]
mov edx, dword [esp]
test ecx, ecx
jne 0x5d7ba5
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x254], edx
jmp 0x5d7bbd
mov ebx, dword [esp + 0x154]
lea edi, [ebx + 0x254]
mov ecx, eax
mov eax, edx
call fcn.00463ab0
mov eax, ecx
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x60]
xor ebp, ebp
jmp 0x5d7c12
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
lea ebp, [ecx + 1]
mov ecx, ebx
mov ebx, dword [esp + 0x154]
cmp ebp, 0x2c
jg 0x5d7dde
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
test ebp, ebp
jl 0x5d942f
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
lea ebx, [ebp - 0x20]
mov dword [esp + 0x7c], ebx
cmp ebx, 0x20
sbb eax, eax
neg ebx
cmp ebx, 0x20
sbb edx, edx
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x6c], esi
mov ecx, dword [esp + 0x7c]
mov esi, 1
shl esi, cl
and eax, esi
mov ecx, ebx
mov ebx, 1
shr ebx, cl
and ebx, edx
or ebx, eax
and ebx, edi
test ebx, ebx
seta al
sete dl
mov ecx, ebp
mov ebx, 1
shl ebx, cl
mov esi, dword [esp + 0x6c]
and esi, ebx
mov ebx, dword [esp + 0x4c]
test esi, ebx
seta bl
and edx, ebx
or eax, edx
test al, al
jne 0x5d7cb8
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xd4]
jmp 0x5d7c06
mov dword [esp + 0x78], ecx
lea eax, [0x6855e0]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call fcn.005d6ca0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov ecx, dword [0x8ef4b0]
test ecx, ecx
jne 0x5d7d01
mov dword [edi], eax
jmp 0x5d7d06
call fcn.00463ab0
mov edx, dword [esp + 0x154]
mov ebx, dword [edx + 0x2ac]
add ebx, 0xfffffffc
mov eax, dword [esp + 0x70]
cmp eax, ebx
jbe 0x5d7d2e
mov ecx, dword [0x8c9058]
mov ebx, dword [0x8c905c]
xor ebp, ebp
jmp 0x5d7d68
mov ecx, dword [edx + 0x28c]
mov ebx, dword [edx + 0x288]
mov ebp, dword [edx + 0x290]
cmp eax, ecx
ja 0x5d942a
sub ecx, eax
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ecx, 3
jbe 0x5d9420
mov ebp, dword [ebp + ebx]
xor ecx, ecx
xor ebx, ebx
mov dword [edi + 8], ebp
test ecx, ecx
jne 0x5d7de9
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x68], ecx
mov eax, dword [edx + 0x254]
lea ecx, [0x66e560]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call fcn.0040ea30
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x8ef4b0]
test eax, eax
jne 0x5d7db5
mov eax, dword [esp + 0xe0]
mov dword [edi], eax
jmp 0x5d7dc1
mov eax, dword [esp + 0xe0]
call fcn.00463ab0
mov ebx, dword [esp + 0x70]
lea eax, [ebx + 4]
mov ecx, dword [esp + 0x78]
mov ebp, ecx
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0xd0]
jmp 0x5d7c06
mov ebx, ecx
mov ecx, edx
mov edx, dword [esp + 0x154]
xor ebp, ebp
jmp 0x5d7e01
mov esi, dword [esp + 0x3c]
lea ebp, [esi + 1]
mov ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x154]
cmp ebp, 0x2c
jg 0x5d9403
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x254]
lea ecx, [0x66e560]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0040e8d0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
jne 0x5d7e59
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
jmp 0x5d7ded
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x12
jg 0x5d87de
cmp ecx, 0xa
jg 0x5d8337
cmp ecx, 4
jg 0x5d80df
cmp ecx, 1
jg 0x5d7fb3
test ecx, ecx
je 0x5d7f26
cmp ecx, 1
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005d9d30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661d80]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d7f0a
mov dword [edx + 0x10], eax
jmp 0x5d7f12
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005d98f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6619c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d7f97
mov dword [edx + 0x10], eax
jmp 0x5d7f9f
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 2
je 0x5d8052
cmp ecx, 4
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005da4c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661400]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8036
mov dword [edx + 0x10], eax
jmp 0x5d803e
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005d9fe0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661d40]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d80c3
mov dword [edx + 0x10], eax
jmp 0x5d80cb
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 8
jg 0x5d8214
cmp ecx, 6
je 0x5d8187
cmp ecx, 8
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dacd0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661a80]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d816b
mov dword [edx + 0x10], eax
jmp 0x5d8173
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005da7b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661880]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d81f8
mov dword [edx + 0x10], eax
jmp 0x5d8200
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 9
jne 0x5d82aa
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dafd0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661780]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d828e
mov dword [edx + 0x10], eax
jmp 0x5d8296
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005db1e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661800]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d831b
mov dword [edx + 0x10], eax
jmp 0x5d8323
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0xe
jg 0x5d858f
cmp ecx, 0xc
jg 0x5d846c
cmp ecx, 0xb
jne 0x5d83df
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005db490
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x660fc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d83c3
mov dword [edx + 0x10], eax
jmp 0x5d83cb
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005db850
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661000]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8450
mov dword [edx + 0x10], eax
jmp 0x5d8458
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0xd
jne 0x5d8502
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dbb00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661380]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d84e6
mov dword [edx + 0x10], eax
jmp 0x5d84ee
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dbd10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6610c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8573
mov dword [edx + 0x10], eax
jmp 0x5d857b
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x10
jg 0x5d86bb
cmp ecx, 0xf
jne 0x5d862e
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dc000
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x660ec0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8612
mov dword [edx + 0x10], eax
jmp 0x5d861a
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dc2f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661340]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d869f
mov dword [edx + 0x10], eax
jmp 0x5d86a7
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x11
jne 0x5d8751
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dc530
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661cc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8735
mov dword [edx + 0x10], eax
jmp 0x5d873d
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dc6a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661180]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d87c2
mov dword [edx + 0x10], eax
jmp 0x5d87ca
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x1c
jg 0x5d8ca0
cmp ecx, 0x18
jg 0x5d8a51
cmp ecx, 0x15
jg 0x5d8925
cmp ecx, 0x14
je 0x5d8898
cmp ecx, 0x15
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dcba0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661ac0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d887c
mov dword [edx + 0x10], eax
jmp 0x5d8884
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dc8b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6611c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8909
mov dword [edx + 0x10], eax
jmp 0x5d8911
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x17
je 0x5d89c4
cmp ecx, 0x18
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dd0a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661900]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d89a8
mov dword [edx + 0x10], eax
jmp 0x5d89b0
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dcdb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661b00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8a35
mov dword [edx + 0x10], eax
jmp 0x5d8a3d
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x1a
jg 0x5d8b7d
cmp ecx, 0x19
jne 0x5d8af0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dd390
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6618c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8ad4
mov dword [edx + 0x10], eax
jmp 0x5d8adc
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dd640
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661980]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8b61
mov dword [edx + 0x10], eax
jmp 0x5d8b69
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x1b
jne 0x5d8c13
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dd7b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661dc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8bf7
mov dword [edx + 0x10], eax
jmp 0x5d8bff
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dd920
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6616c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8c84
mov dword [edx + 0x10], eax
jmp 0x5d8c8c
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x27
jg 0x5d9028
cmp ecx, 0x20
jg 0x5d8dde
cmp ecx, 0x1d
je 0x5d8d51
cmp ecx, 0x20
jne 0x5d8df0
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005ddef0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x660cc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8d35
mov dword [edx + 0x10], eax
jmp 0x5d8d3d
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005ddcb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6613c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8dc2
mov dword [edx + 0x10], eax
jmp 0x5d8dca
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x23
je 0x5d8f9b
cmp ecx, 0x27
je 0x5d8f0e
mov dword [esp], ecx
call fcn.005d6ca0
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.00463d48
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x66ba40]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call fcn.00409600
mov eax, dword [esp + 8]
lea ecx, [0x66c280]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x66c3c0]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x66c3c0]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x154]
mov edx, dword [eax + 0x2c0]
mov dword [esp], edx
lea edx, [0x6bb2e2]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x32
lea ebx, [esp + 0x130]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 4
call fcn.00523a50
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
xor edx, edx
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005defc0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661280]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d8f7f
mov dword [edx + 0x10], eax
jmp 0x5d8f87
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005de7a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x660c80]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d900c
mov dword [edx + 0x10], eax
jmp 0x5d9014
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x29
jg 0x5d9154
cmp ecx, 0x28
jne 0x5d90c7
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005df410
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x6617c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d90ab
mov dword [edx + 0x10], eax
jmp 0x5d90b3
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005df7c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661a00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d9138
mov dword [edx + 0x10], eax
jmp 0x5d9140
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
cmp ecx, 0x2a
je 0x5d9280
cmp ecx, 0x2b
jne 0x5d91f3
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dfd70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661940]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d91d7
mov dword [edx + 0x10], eax
jmp 0x5d91df
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005dff80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661440]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d9264
mov dword [edx + 0x10], eax
jmp 0x5d926c
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5d9308
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005df9d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x661480]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x8ef4b0]
test ebx, ebx
jne 0x5d92f1
mov dword [edx + 0x10], eax
jmp 0x5d92f9
lea edi, [edx + 0x10]
call fcn.00463ab0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
test eax, eax
je 0x5d93f8
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005d6ca0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409600
mov eax, dword [esp + 8]
lea ecx, [0x66c280]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5d9390
mov edx, dword [eax + 4]
jmp 0x5d9392
mov edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 0x2c0]
mov dword [esp], edx
lea edx, [0x6b8422]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x28
lea ebx, [esp + 0xe8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.00523a50
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x48]
add edx, ebp
jmp 0x5d7ded
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov eax, 3
call fcn.00463b30
call fcn.00463ba0
call fcn.00434ca0
inc esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x154]
mov ebx, dword [esp + 0x7c]
cmp esi, 0x20
ja 0x5d7828
mov dword [esp + 0x5c], esi
lea edi, [ebx + 1]
cmp dword [ebp + 0x2ac], edi
jae 0x5d948b
mov ebx, dword [0x8c9058]
mov ebp, dword [0x8c905c]
mov word [esp + 0x80], ax
xor eax, eax
mov byte [esp + 0x31], al
movzx eax, word [esp + 0x80]
jmp 0x5d94c7
mov esi, dword [ebp + 0x290]
mov ebp, dword [ebp + 0x288]
cmp esi, edi
jb 0x5d958b
cmp ebx, edi
ja 0x5d9582
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
movzx esi, byte [ebp + ebx]
xchg esi, eax
mov byte [esp + 0x31], al
xchg esi, eax
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x5c]
test ebx, ebx
jne 0x5d955f
mov dword [esp + 0x7c], edi
movzx ebx, byte [esp + 0x31]
test bl, bl
jne 0x5d94ff
lea ebp, [esi + 1]
test ebp, 3
je 0x5d7819
test bl, bl
jne 0x5d94ff
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xc4]
jmp 0x5d9434
mov dword [esp], 0
mov dword [esp + 8], 0
movzx eax, bl
mov dword [esp + 4], eax
call fcn.0044ef10
mov dword [esp], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
call fcn.0044e720
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x7c]
mov ebx, ecx
mov ebp, eax
movzx eax, word [esp + 0x32]
mov ecx, dword [esp + 0x54]
jmp 0x5d9434
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebp
add esp, 0x150
ret
mov ecx, esi
call fcn.00463ba0
mov ecx, esi
call fcn.00463b80
mov eax, ebx
mov ecx, edi
call fcn.00463ba0
mov ecx, edi
mov edx, esi
call fcn.00463b80
mov eax, 3
mov ecx, esi
call fcn.00463b30
mov eax, ebx
mov ecx, edi
call fcn.00463ba0
mov eax, 3
mov ecx, edi
call fcn.00463b30
mov eax, ebp
mov ecx, edi
call fcn.00463ba0
nop
call fcn.004626a0
jmp fcn.005d7460