Function at 0x43a18a
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x20bfc
call fcn.0050d330
push ebx
push esi
push edi
push 6
pop edi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x18], 0x2501
cmp dword [esp + 0x18], 0xc9c
push 7
mov dword [esp + 0x44], edx
pop ebx
jge 0x43a2f7
lea eax, [esp + 0x13c]
push eax
push 0xac0ab4
call fcn.004f9f6f
lea eax, [esp + 0x63c]
push eax
push 0xac0b38
call fcn.004f9f6f
mov eax, dword [esp + 0x14c]
add esp, 0x10
cmp eax, edi
jne 0x43a208
push 0xac1e7c
call fcn.004fae88
mov eax, dword [esp + 0x140]
pop ecx
cmp eax, ebx
jne 0x43a2e7
push 0xac1e84
lea ecx, [esp + 0xa9c]
call fcn.004014c0
push 0xac1e8c
lea ecx, [esp + 0xab4]
call fcn.004014c0
push 0xac1e94
lea ecx, [esp + 0xacc]
call fcn.004014c0
push 0xac1e9c
lea ecx, [esp + 0xae4]
call fcn.004014c0
push 0xac1ea4
lea ecx, [esp + 0xafc]
call fcn.004014c0
push 0xac1eac
lea ecx, [esp + 0xb14]
call fcn.004014c0
xor edx, edx
lea ecx, [esp + 0xa98]
xor eax, eax
mov bl, byte [esp + eax + 0x634]
cmp bl, 0x2e
je 0x43a2a2
cmp dword [ecx + 0x14], 0x10
jb 0x43a297
mov esi, dword [ecx]
jmp 0x43a299
mov esi, ecx
cmp bl, byte [eax + esi]
jne 0x43a3ca
inc eax
cmp eax, edi
jl 0x43a281
imul eax, edx, 0x18
lea eax, [esp + eax + 0xa98]
cmp dword [eax + 0x14], 0x10
jb 0x43a2b9
mov eax, dword [eax]
push eax
call fcn.004fae88
pop ecx
push 0x18
pop eax
push 5
lea esi, [esp + 0xb2c]
pop edi
sub esi, eax
push 0
push 1
mov ecx, esi
call fcn.0040160a
dec edi
push 0x18
pop eax
jns 0x43a2cd
mov eax, dword [esp + 0x13c]
cmp eax, 8
jne 0x43a2f7
push 0xac1eb4
call fcn.004fae88
pop ecx
push 3
pop ebx
push ebx
lea ecx, [esp + 0x270]
call fcn.0042ce8d
mov dword [esp + 0x1c], 0x2a62
cmp dword [esp + 0x1c], 0x2e24
mov dword [esp + 0x24], 0xa
jle 0x43a458
push 0
push 0
push 0
call dword [0x1efd3c0]
xor eax, eax
mov dword [esp + 0x20], eax
xor ebx, ebx
mov dword [esp + 0xc], ebx
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x2629
cmp dword [esp + 0x18], 0xe76
jge 0x43a3ee
and dword [esp + 0x1e8], 0
lea eax, [esp + 0x1fc]
and dword [esp + 0x1fc], 0
push eax
lea eax, [esp + 0x1ec]
push eax
push 0xac0c68
call fcn.004f9f6f
mov ecx, dword [esp + 0x1f4]
add esp, 0xc
inc ecx
xor ebx, ebx
xor esi, esi
inc ebx
mov eax, ecx
test ecx, ecx
jle 0x43a3be
cdq
idiv dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp edx, 4
je 0x43a3ac
cmp edx, 7
jne 0x43a3ba
mov eax, ebx
imul eax, edx
add esi, eax
mov eax, dword [esp + 0x18]
imul ebx, ebx, 0xa
test eax, eax
jg 0x43a399
cmp esi, dword [esp + 0x1fc]
je 0x43a3dd
inc ecx
jmp 0x43a38e
push 0x18
pop eax
inc edx
add ecx, eax
cmp edx, edi
jl 0x43a27f
jmp 0x43a2c3
push ecx
push 0xac0b4c
call fcn.004f967e
mov ebx, dword [esp + 0x14]
pop ecx
pop ecx
mov eax, ebx
xor esi, esi
cdq
idiv edi
mov ebx, dword [esp + 0x20]
mov edi, edx
mov eax, edi
mov ecx, 0xad3d78
and eax, esi
and eax, ebx
cdq
push edx
push eax
call fcn.0042cb49
inc esi
cmp esi, 0x3637
jl 0x43a3fb
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x7da6
jl 0x43a343
inc ebx
mov dword [esp + 0xc], ebx
cmp ebx, 0x2b60
jl 0x43a33d
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x6199
jl 0x43a337
push 3
pop ebx
cmp dword [esp + 0x1c], 0x2783
jge 0x43a471
mov edx, 0xac1ec0
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x18], 0x1949
mov esi, 0xac0c1c
cmp dword [esp + 0x18], 0x10bb
jge 0x43a507
and dword [esp + 0x19c], 0
lea eax, [esp + 0x128]
and dword [esp + 0x164], 0
and dword [esp + 0x128], 0
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x1a4]
push eax
push 0xac0d7c
call fcn.004f9f6f
mov eax, dword [esp + 0x1ac]
add esp, 0x10
cdq
sub eax, edx
sar eax, 1
cmp dword [esp + 0x164], eax
je 0x43a4e6
lea ecx, [eax + 1]
cmp dword [esp + 0x164], ecx
jne 0x43a4f9
cmp dword [esp + 0x128], eax
je 0x43a500
inc eax
cmp dword [esp + 0x128], eax
je 0x43a500
push 0xac0c10
jmp 0x43a501
push esi
call fcn.004fae88
pop ecx
mov dword [esp + 0xc], 0
jmp 0x43a527
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x26c]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x43a511
mov dword [esp + 0x20], 0x6976
mov dword [esp + 0x18], 0x1e31
cmp dword [esp + 0x18], 0x80b
jge 0x43a649
lea eax, [esp + 0x1ac]
push eax
push 0xac0ab4
call fcn.004f9f6f
xor eax, eax
inc eax
mov esi, eax
pop ecx
pop ecx
cmp dword [esp + 0x1ac], eax
jl 0x43a649
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x1a8]
push eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x90]
push eax
push 0xac0f7c
call fcn.004f9f6f
add esp, 0x14
push dword [esp + 0x130]
push dword [esp + 0x1a8]
push dword [esp + 0x140]
push dword [esp + 0x90]
push esi
push 0xac1ef4
call fcn.004f967e
mov eax, dword [esp + 0x9c]
add esp, 0x18
mov ecx, dword [esp + 0x138]
xor edi, edi
cdq
idiv ecx
mov ebx, dword [esp + 0x130]
mov dword [esp + 0x84], edx
test ebx, ebx
js 0x43a631
imul eax, edx, 7
mov dword [esp + 0x84], eax
cmp edi, dword [esp + 0x1a4]
jl 0x43a622
cdq
idiv ecx
add eax, 0x30
push eax
call fcn.004fae7f
mov ebx, dword [esp + 0x134]
mov eax, dword [esp + 0x88]
pop ecx
mov ecx, dword [esp + 0x138]
cdq
idiv ecx
inc edi
mov dword [esp + 0x84], edx
cmp edi, ebx
jle 0x43a5ed
push 0xa
pop eax
push eax
call fcn.004fae7f
inc esi
pop ecx
cmp esi, dword [esp + 0x1ac]
jle 0x43a571
cmp dword [esp + 0x20], 0x6ce8
jle 0x43a79f
push 0
push 0
push 0
push 0
push 0
call dword [0x1efd120]
xor edi, edi
mov dword [esp + 0x1c], edi
xor esi, esi
mov dword [esp + 0x14], esi
mov ecx, esi
mov dword [esp + 0x18], edi
xor ebx, ebx
shl edi, cl
mov eax, ebx
lea ecx, [esp + 0x9c8]
or eax, edi
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43a69a
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x9d0]
call fcn.0040160a
inc ebx
cmp ebx, 0x2f62
jl 0x43a67d
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x676
jl 0x43a673
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 0x7ac7
jl 0x43a66d
mov dword [esp + 0x18], 0x172c
cmp dword [esp + 0x18], 0xa4c
jge 0x43a799
lea eax, [esp + 0xc4]
mov edi, 0xac0ab8
push eax
push edi
call fcn.004f9f6f
pop ecx
jmp 0x43a781
dec eax
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x1cc]
push eax
push edi
call fcn.004f9f6f
mov eax, dword [esp + 0x1d4]
xor ebx, ebx
pop ecx
xor esi, esi
pop ecx
test eax, eax
jle 0x43a760
lea eax, [esp + 0x350]
push eax
push edi
call fcn.004f9f6f
mov eax, dword [esp + 0x358]
pop ecx
pop ecx
and eax, 0x80000001
jns 0x43a752
dec eax
or eax, 0xfffffffe
inc eax
add ebx, eax
mov eax, dword [esp + 0x1cc]
inc esi
cmp esi, eax
jl 0x43a72f
xor ecx, ecx
inc ecx
test cl, bl
jne 0x43a776
cmp ebx, ecx
jl 0x43a76f
cmp ebx, eax
jl 0x43a776
mov eax, 0xac0c1c
jmp 0x43a77b
mov eax, 0xac0c10
push eax
call fcn.004fae88
mov eax, dword [esp + 0xc8]
pop ecx
test eax, eax
jne 0x43a708
dec eax
mov dword [esp + 0xc4], eax
call dword [0x1efd274]
mov dword [esp + 0xc], 0x3e52
cmp dword [esp + 0xc], 0x4092
jle 0x43a80c
xor edi, edi
xor esi, esi
mov dword [esp + 0x24], esi
mov ebx, esi
mov dword [esp + 0x1c], 0x213a
mov dword [esp + 0x14], ebx
mov esi, ebx
mov ebx, 0x4d86
mov eax, esi
mov ecx, 0xad3d78
xor eax, edi
cdq
push edx
push eax
call fcn.0042cb49
dec esi
dec ebx
jne 0x43a7ce
mov ebx, dword [esp + 0x14]
dec ebx
dec dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
jne 0x43a7c7
mov esi, dword [esp + 0x24]
inc esi
mov dword [esp + 0x24], esi
cmp esi, 0x481
jl 0x43a7b9
inc edi
cmp edi, 0x1f4d
jl 0x43a7b3
xor ebx, ebx
mov byte [esp + 0x13], bl
cmp dword [esp + 0xc], 0x3b2f
jge 0x43a82b
mov edx, 0xac1f88
mov ecx, 0xad3d78
call fcn.0042f475
cmp byte [esp + 0x13], bl
je 0x43a838
push ebx
call dword [0x1efd440]
cmp dword [esp + 0x20], 0x67b3
jge 0x43a84d
push 0xac1f30
call fcn.004f967e
pop ecx
mov byte [esp + 0x13], bl
push 2
pop esi
cmp byte [esp + 0x13], bl
je 0x43a938
mov dword [esp + 0x18], 0x221c
cmp dword [esp + 0x18], 0x560
jge 0x43a92d
lea eax, [esp + 0x9c]
push eax
push 0xac0ab4
call fcn.004f9f6f
mov eax, dword [esp + 0xa4]
pop ecx
pop ecx
test eax, eax
je 0x43a925
jmp 0x43a89c
push 2
pop esi
dec eax
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x1d4]
push eax
push 0xac0ab4
call fcn.004f9f6f
pop ecx
pop ecx
mov ecx, dword [esp + 0x1d4]
mov eax, ecx
cdq
mov edi, ecx
sub eax, edx
sar eax, 1
cmp eax, 2
jl 0x43a8fc
mov eax, ecx
cdq
idiv esi
test edx, edx
jne 0x43a8f2
mov eax, edi
cdq
idiv esi
mov edi, eax
mov eax, ecx
cdq
idiv esi
mov ecx, eax
cdq
idiv esi
test edx, edx
je 0x43a8dd
mov dword [esp + 0x1d4], ecx
mov eax, ecx
inc esi
cdq
idiv esi
cmp esi, eax
jle 0x43a8cd
cmp ecx, 1
jle 0x43a908
mov eax, edi
cdq
idiv ecx
mov edi, eax
inc edi
push edi
push 0xac0b2c
call fcn.004f967e
mov eax, dword [esp + 0xa4]
pop ecx
pop ecx
test eax, eax
jne 0x43a899
dec eax
mov dword [esp + 0x9c], eax
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0x1efd400]
cmp dword [esp + 0x26c], ebx
je 0x43a963
push dword [esp + 0x26c]
call fcn.004f9366
pop ecx
mov dword [esp + 0x26c], ebx
mov dword [esp + 0x270], ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x28], 0x531b
cmp dword [esp + 0x28], 0x5576
jle 0x43abb6
mov dword [esp + 0xc], ebx
xor eax, eax
mov dword [esp + 0x14], 0x7b55
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0x1c5f
cmp dword [esp + 0x18], 0xf9b
jge 0x43ab50
lea eax, [esp + 0x2ac]
mov ecx, 0xad3ec0
push eax
call fcn.0044137b
and dword [esp + 0x470], 0
lea ecx, [esp + 0x558]
push 0xac1fec
mov dword [esp + 0x478], 0xf
mov byte [esp + 0x464], 0
call fcn.004014c0
lea edx, [esp + 0x460]
mov ecx, 0xad3ec0
call fcn.00446f4f
lea eax, [esp + 0x460]
push eax
lea ecx, [esp + 0x434]
call fcn.0042cae4
mov eax, dword [esp + 0x440]
xor edi, edi
test eax, eax
jle 0x43aa4c
mov ebx, eax
cmp dword [esp + 0x444], 0x10
lea eax, [esp + 0x430]
lea esi, [esp + 0x430]
cmovae eax, dword [esp + 0x430]
cmovae esi, dword [esp + 0x430]
movsx eax, byte [eax + edi]
push eax
call fcn.004fa8d0
mov byte [esi + edi], al
inc edi
pop ecx
cmp edi, ebx
jl 0x43aa13
and dword [esp + 0x62c], 0
lea eax, [esp + 0x430]
push eax
lea ecx, [esp + 0x620]
mov dword [esp + 0x634], 0xf
mov byte [esp + 0x620], 0
call fcn.0042d222
xor edi, edi
lea ecx, [esp + 0x430]
push 0
inc edi
push edi
call fcn.0040160a
lea eax, [esp + 0x61c]
push eax
lea ecx, [esp + 0x464]
call fcn.0042d1fd
push 0
push edi
lea ecx, [esp + 0x624]
call fcn.0040160a
xor esi, esi
cmp dword [esp + 0x568], esi
jbe 0x43ab18
mov ebx, 0xac2008
cmp dword [esp + 0x56c], 0x10
lea eax, [esp + 0x558]
push edi
cmovae eax, dword [esp + 0x55c]
lea ecx, [esp + 0x464]
push 0
mov al, byte [eax + esi]
mov byte [esp + 0x7c], al
lea eax, [esp + 0x7c]
push eax
call fcn.0044301d
cmp eax, dword [esp + 0x470]
jbe 0x43ab0e
mov edx, ebx
mov ecx, 0xad3d78
call fcn.0042f475
push eax
call fcn.00446111
pop ecx
inc esi
cmp esi, dword [esp + 0x568]
jb 0x43aac0
mov edx, 0xac200c
mov ecx, 0xad3d78
call fcn.0042f475
push eax
call fcn.00446111
pop ecx
push 0
push edi
lea ecx, [esp + 0x560]
call fcn.0040160a
push 0
push edi
lea ecx, [esp + 0x468]
call fcn.0040160a
mov eax, dword [esp + 0x20]
mov esi, eax
mov edi, 0x5f15
mov eax, esi
lea ecx, [esp + 0x9f8]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43ab72
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0xa00]
call fcn.0040160a
dec esi
dec edi
jne 0x43ab57
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
add eax, ebx
dec dword [esp + 0x14]
mov dword [esp + 0x20], eax
jne 0x43a98b
inc ebx
mov dword [esp + 0xc], ebx
cmp ebx, 0xd02
jl 0x43a97d
xor ebx, ebx
inc ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 0x33c7d24b
mov dword [esp + 0x38], ebx
mov dword [esp + 0x18], 0x1460
cmp dword [esp + 0x18], 0xf62
jge 0x43acf4
push 0xd80e54
push ecx
push 0xdb1ba4
mov ecx, 0xad3ec0
call fcn.0044137b
pop ecx
mov ecx, eax
call fcn.0044137b
mov edx, 0x516778
mov ecx, eax
call fcn.00446f4f
mov eax, dword [0xd80e54]
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov edx, ebx
test eax, eax
jle 0x43acde
mov ebx, dword [0x516788]
mov edi, dword [0x516728]
xor esi, esi
cmp edx, edi
jae 0x43ac81
xor esi, esi
cmp esi, ebx
jae 0x43ac78
cmp dword [0x51672c], 0x10
mov eax, 0x516718
mov ecx, 0x516778
cmovae eax, dword [0x516718]
cmp dword [0x51678c], 0x10
cmovae ecx, dword [0x516778]
add eax, esi
mov al, byte [eax + edx]
cmp al, byte [ecx + esi]
jne 0x43ac73
inc esi
lea eax, [esi + edx]
cmp eax, edi
jb 0x43ac35
jmp 0x43ac78
inc edx
cmp edx, edi
jb 0x43ac33
mov eax, dword [0xd80e54]
mov ecx, dword [esp + 0xc]
cmp esi, ebx
jae 0x43acc9
cmp dword [0x51678c], 0x10
mov eax, 0x516778
mov ecx, 0x516718
cmovae eax, dword [0x516778]
mov al, byte [eax + esi]
mov byte [esp + 0x18], al
push dword [esp + 0x18]
push 1
call fcn.00442fbc
mov ebx, dword [0x516788]
inc esi
cmp esi, ebx
jb 0x43ac85
mov edi, dword [0x516728]
mov eax, dword [0xd80e54]
mov ecx, dword [esp + 0xc]
mov edx, edi
sub edx, ebx
inc edx
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, eax
jl 0x43ac2d
xor ebx, ebx
inc ebx
mov edx, 0x516718
mov ecx, 0xad3d78
call fcn.00446447
push eax
call fcn.00446111
pop ecx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x18], 0x1a4a
cmp dword [esp + 0x18], 0xe4f
jge 0x43adbe
lea eax, [esp + 0x1dc]
push eax
push 0xac0b4c
call fcn.004f9f6f
mov byte [esp + 0x47], bl
xor edi, edi
xor ebx, ebx
pop ecx
pop ecx
cmp dword [esp + 0x1dc], ebx
jle 0x43ada5
lea eax, [esp + 0x2e0]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov esi, dword [esp + 0x2e8]
pop ecx
pop ecx
test esi, esi
je 0x43ad88
mov ecx, esi
and ecx, 0x80000001
jns 0x43ad65
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x43ad72
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jne 0x43ad56
test esi, esi
je 0x43ad88
push 3
pop ecx
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x43ad88
mov esi, eax
test esi, esi
jne 0x43ad79
test edi, edi
jne 0x43ad90
mov edi, esi
jmp 0x43ad94
cmp esi, edi
jne 0x43ada0
inc ebx
cmp ebx, dword [esp + 0x1dc]
jl 0x43ad37
jmp 0x43ada5
mov byte [esp + 0x3f], 0
cmp byte [esp + 0x3f], 0
mov ecx, 0xac2008
mov eax, 0xac200c
cmove eax, ecx
push eax
call fcn.004fae88
pop ecx
mov dword [esp + 0xc], 0x35900b08
mov dword [esp + 0x24], 0x5878
cmp dword [esp + 0x24], 0x5aa1
jle 0x43aeef
xor eax, eax
mov dword [esp + 0xc], eax
xor ebx, ebx
mov dword [esp + 0x1c], ebx
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x15eb
cmp dword [esp + 0x18], 0x777
jge 0x43ae62
lea eax, [esp + 0x310]
push eax
lea eax, [esp + 0x1e8]
push eax
lea eax, [esp + 0x234]
push eax
push 0xac2034
call fcn.004f9f6f
mov eax, dword [esp + 0x1f4]
add eax, dword [esp + 0x320]
push 0x3c
pop ecx
cdq
idiv ecx
push 0x18
add eax, dword [esp + 0x240]
mov esi, edx
pop ecx
cdq
idiv ecx
push esi
push edx
push 0xac2040
mov dword [esp + 0x200], esi
mov dword [esp + 0x248], edx
call fcn.004f967e
add esp, 0x1c
mov eax, ebx
xor esi, esi
cdq
idiv edi
mov ebx, dword [esp + 0xc]
mov edi, edx
mov eax, edi
lea ecx, [esp + 0x74c]
cdq
idiv esi
xor edx, ebx
mov eax, edx
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43ae91
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x754]
call fcn.0040160a
inc esi
cmp esi, 0x7eaf
jl 0x43ae6f
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x427c
jl 0x43adee
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, 0x3d30
jl 0x43ade8
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, 0xddc
jl 0x43ade2
push 3
pop eax
push eax
lea ecx, [esp + 0x5dc]
call fcn.0042ce8d
cmp dword [esp + 0x24], 0x57a7
jge 0x43af14
push 0xac2010
call fcn.004f967e
pop ecx
mov dword [esp + 0x14], 0x66d8
xor ebx, ebx
cmp dword [esp + 0x14], 0x69ce
jle 0x43af76
xor edi, edi
inc ebx
xor esi, esi
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [esp + 0x77c]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43af4c
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push ebx
lea ecx, [esp + 0x784]
call fcn.0040160a
inc esi
cmp esi, 0x3dc0
jl 0x43af2d
inc edi
cmp edi, 0x27af
jl 0x43af2b
jmp 0x43af77
inc ebx
mov dword [esp + 0x18], 0x1ec6
cmp dword [esp + 0x18], 0x935
jge 0x43b0fb
xor eax, eax
lea ecx, [esp + 0x290]
push eax
push eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2ac], eax
call fcn.0040160a
lea edx, [esp + 0x290]
mov ecx, 0xad3ec0
mov esi, ebx
call fcn.00446f4f
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x43b0ec
mov edi, 0xad3d78
push 0xac0d30
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
je 0x43b0ec
push esi
push ecx
mov edx, 0xac0fb4
mov ecx, edi
call fcn.0042f475
pop ecx
mov ecx, eax
call fcn.00441b73
mov edx, 0xabec34
mov ecx, eax
call fcn.0042f475
push 0xac20b0
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
jne 0x43b02d
mov edx, 0xac20b8
jmp 0x43b0bc
push 0xac20c0
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
jne 0x43b049
mov edx, 0xac20c8
jmp 0x43b0bc
push 0xac20d0
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
jne 0x43b065
mov edx, 0xac20d8
jmp 0x43b0bc
push 0xac20e0
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
jne 0x43b081
mov edx, 0xac20e8
jmp 0x43b0bc
push 0xac20f0
lea ecx, [esp + 0x294]
call fcn.00441326
test eax, eax
jne 0x43b09d
mov edx, 0xac20f8
jmp 0x43b0bc
push 0xac2100
lea ecx, [esp + 0x294]
call fcn.00441326
mov edx, 0xac2110
test eax, eax
je 0x43b0bc
mov edx, 0xac2118
mov ecx, edi
call fcn.0042f475
push eax
call fcn.00446111
pop ecx
lea edx, [esp + 0x290]
mov ecx, 0xad3ec0
inc esi
call fcn.00446f4f
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x43afd3
push 0
push ebx
lea ecx, [esp + 0x298]
call fcn.0040160a
cmp dword [esp + 0x14], 0x65e7
jge 0x43b110
push 0xac2050
call fcn.004f967e
pop ecx
mov dword [esp + 0x24], 0x4a0e
mov dword [esp + 0x18], 0x1b3d
cmp dword [esp + 0x18], 0x1233
jge 0x43b17e
lea eax, [esp + 0xa4]
mov ebx, 0xac0ab8
push eax
push ebx
call fcn.004f9f6f
pop ecx
pop ecx
jmp 0x43b16b
dec eax
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x330]
push eax
push ebx
call fcn.004f9f6f
push dword [esp + 0x338]
push 0xac0b4c
call fcn.004f967e
add esp, 0x10
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x43b141
dec eax
mov dword [esp + 0xa4], eax
cmp dword [esp + 0x24], 0x4afb
jle 0x43b1fe
xor edi, edi
mov dword [esp + 0x1c], edi
xor ebx, ebx
mov dword [esp + 0x14], 0x2d25
xor esi, esi
mov eax, esi
lea ecx, [esp + 0xa10]
or eax, ebx
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43b1b7
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0xa18]
call fcn.0040160a
inc esi
cmp esi, 0x45f2
jl 0x43b19a
mov edi, dword [esp + 0x1c]
add ebx, edi
dec dword [esp + 0x14]
jne 0x43b198
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 0x2f91
jl 0x43b18e
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
call dword [0x1efd03c]
jmp 0x43b200
xor ebx, ebx
push 3
mov dword [esp + 0x10], ebx
pop edx
jmp 0x43b21f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x5d8]
mov dword [eax + ecx*4], 0xdb88
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x43b209
cmp dword [esp + 0x24], 0x49e4
jge 0x43b23a
push 0xac2120
call fcn.004f967e
pop ecx
cmp dword [esp + 0x20], ebx
je 0x43b24f
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x20], eax
jne 0x43b24f
xor esi, esi
inc esi
jmp 0x43b251
mov esi, ebx
mov eax, dword [esp + 0x30]
or ecx, 0xffffffff
mov eax, dword [esp + 0x2c]
sub ecx, eax
jne 0x43b26a
cmp dword [esp + 0x20], ebx
jne 0x43b26a
mov edx, ebx
jmp 0x43b26d
xor edx, edx
inc edx
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp esi, eax
setge cl
imul ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 0xfffffffc
sete al
imul eax, eax, 0xc58f
test eax, eax
jne 0x43b2a8
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push 2
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], ebx
pop esi
jmp 0x43b2d4
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x43b2d0
push ebx
push ebx
call dword [0x1efd42c]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x43b2bd
lea ecx, [esp + 0x5d8]
call fcn.0042d79d
cmp dword [esp + 0x28], 0x51fc
jge 0x43b2fb
push 0xac1fc4
call fcn.004f967e
pop ecx
mov dword [esp + 0x24], 0x3081
mov dword [esp + 0x18], 0x26ca
cmp dword [esp + 0x18], 0x43a
jge 0x43b527
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x70]
push eax
push 0xac0c68
call fcn.004f9f6f
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x40c]
add eax, dword [esp + 0x78]
add esp, 0xc
push eax
call fcn.0042ce8d
mov eax, dword [esp + 0x6c]
mov edi, ebx
mov ecx, dword [esp + 0x54]
add eax, ecx
test eax, eax
jle 0x43b37b
mov esi, dword [esp + 0x400]
push esi
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x74]
inc edi
pop ecx
pop ecx
mov ecx, dword [esp + 0x54]
add esi, 4
add eax, ecx
cmp edi, eax
jl 0x43b35c
push ecx
lea ecx, [esp + 0x3d4]
call fcn.0042ce8d
push dword [esp + 0x6c]
lea ecx, [esp + 0x218]
call fcn.0042ce8d
lea eax, [esp + 0x354]
mov dword [esp + 0x354], ebx
push eax
push dword [esp + 0x58]
lea ecx, [esp + 0x530]
call fcn.004420ce
mov eax, dword [esp + 0x54]
mov esi, ebx
add eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x3d0]
test eax, eax
jle 0x43b41b
mov edi, dword [esp + 0x214]
lea eax, [esp + 0x2b0]
push eax
push 0xac0ab8
call fcn.004f9f6f
cmp dword [esp + 0x2b8], 0
mov eax, dword [esp + 0x408]
pop ecx
pop ecx
mov eax, dword [eax + esi*4]
je 0x43b402
mov dword [ebx], eax
add ebx, 4
jmp 0x43b407
mov dword [edi], eax
add edi, 4
mov eax, dword [esp + 0x54]
inc esi
add eax, dword [esp + 0x6c]
cmp esi, eax
jl 0x43b3d3
mov ebx, dword [esp + 0x3d0]
push dword [esp + 0x218]
push dword [esp + 0x218]
call fcn.0044616a
push dword [esp + 0x3dc]
push ebx
call fcn.0044616a
mov esi, dword [esp + 0x538]
xor edi, edi
add esp, 0x10
mov dword [esp + 0x14], edi
cmp dword [esp + 0x6c], edi
jle 0x43b4cc
mov ecx, ebx
lea edx, [esi - 4]
sub ecx, esi
mov eax, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x214]
mov dword [esp + 0xc], eax
mov edi, dword [ecx + edi*4]
cmp edi, dword [ebx]
jge 0x43b474
inc dword [esi]
jmp 0x43b4bd
mov ecx, dword [esp + 0x54]
cmp edi, dword [ebx + ecx*4 - 4]
jle 0x43b484
inc dword [esi + ecx*4 - 4]
jmp 0x43b4b6
cmp edi, dword [eax]
jle 0x43b493
push 4
pop ecx
add eax, ecx
add edx, ecx
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x18]
mov ecx, edi
mov eax, dword [eax]
sub eax, edi
sub ecx, dword [esi + edx]
mov esi, dword [esp + 0x528]
cmp ecx, eax
mov eax, dword [esp + 0xc]
jg 0x43b4b3
inc dword [edx]
jmp 0x43b4b6
inc dword [edx + 4]
mov ecx, dword [esp + 0x214]
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x6c]
jl 0x43b469
xor ebx, ebx
mov edi, ebx
cmp dword [esp + 0x54], ebx
jle 0x43b4ec
push dword [esi + edi*4]
push 0xac0c14
call fcn.004f967e
inc edi
pop ecx
pop ecx
cmp edi, dword [esp + 0x54]
jl 0x43b4d6
push 0xabec31
call fcn.004fae88
pop ecx
lea ecx, [esp + 0x528]
call fcn.0042d79d
lea ecx, [esp + 0x214]
call fcn.0042d79d
lea ecx, [esp + 0x3d0]
call fcn.0042d79d
lea ecx, [esp + 0x400]
call fcn.0042d79d
cmp dword [esp + 0x24], 0x3248
jle 0x43b5b6
push ebx
push ebx
call dword [0x1efd3c4]
mov dword [esp + 0x1c], ebx
jmp 0x43b545
xor ebx, ebx
mov dword [esp + 0x14], 0x776f
xor edi, edi
mov esi, 0x1699
mov eax, edi
lea ecx, [esp + 0x7ac]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43b56f
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x7b4]
call fcn.0040160a
add edi, ebx
dec esi
jne 0x43b554
mov esi, dword [esp + 0x1c]
add ebx, esi
dec dword [esp + 0x14]
jne 0x43b54d
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 0x33e8
jl 0x43b543
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0x1efd418]
mov eax, dword [0x1efb1a0]
xor ebx, ebx
inc ebx
test bl, al
jne 0x43b5d9
or eax, ebx
mov dword [0x1efb1a0], eax
call fcn.00442c5d
push 0x5145fe
call fcn.004f932f
pop ecx
cmp dword [esp + 0x24], 0x2faf
jge 0x43b5ee
push 0xac2180
call fcn.004f967e
pop ecx
push 4
pop edi
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x324]
push edi
call fcn.0042ce8d
mov dword [esp + 0x38], 0xa9a26275
mov dword [esp + 0x14], 0x7d63f7ce
mov dword [esp + 0xc], 0
jmp 0x43b632
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x324]
mov dword [eax + ecx*4], 0x2b1cecb4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x43b61c
cmp dword [esp + 0x2c], 0
je 0x43bae5
mov dword [esp + 0x24], 0x5c62
mov dword [esp + 0x18], 0x19ff
cmp dword [esp + 0x18], 0x527
jge 0x43b740
lea eax, [esp + 0x2b8]
push eax
lea eax, [esp + 0x144]
push eax
push 0xac0c68
call fcn.004f9f6f
add esp, 0xc
lea ecx, [esp + 0x54c]
push dword [esp + 0x140]
call fcn.0042ce8d
and dword [esp + 0x14], 0
mov esi, 0x3b9aca00
mov ebx, dword [esp + 0x140]
test ebx, ebx
jle 0x43b6d6
mov edi, dword [esp + 0x54c]
push edi
push 0xac0ab8
call fcn.004f9f6f
cmp esi, dword [edi]
mov eax, dword [esp + 0x1c]
cmovge esi, dword [edi]
inc eax
mov ebx, dword [esp + 0x148]
add edi, 4
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
cmp eax, ebx
jl 0x43b6ad
xorps xmm0, xmm0
xor eax, eax
movlpd qword [esp + 0x48], xmm0
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x43b722
mov edx, dword [esp + 0x54c]
mov eax, dword [edx + eax*4]
sub eax, esi
cdq
idiv dword [esp + 0x2b8]
test edx, edx
jne 0x43b71d
cdq
add edi, eax
mov eax, dword [esp + 0x14]
adc ecx, edx
inc eax
mov dword [esp + 0x14], eax
cmp eax, ebx
jl 0x43b6f1
jmp 0x43b722
or edi, 0xffffffff
or ecx, edi
push ecx
push edi
push 0xac0bc8
call fcn.004f967e
add esp, 0xc
lea ecx, [esp + 0x54c]
call fcn.0042d79d
push 4
pop edi
cmp dword [esp + 0x24], 0x5fb3
jle 0x43baac
xor esi, esi
mov dword [esp + 0x1c], esi
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov ecx, ebx
mov dword [esp + 0x18], 0x1f7b
mov eax, esi
shl eax, cl
cmp dword [esp + 0x18], 0x127b
cdq
mov ecx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ecx
jge 0x43ba7b
movdqa xmm0, xmmword [0xacc510]
xor eax, eax
push 2
inc eax
mov dword [esp + 0x5ac], edi
mov dword [esp + 0x588], eax
xor ecx, ecx
mov dword [esp + 0x584], eax
mov dword [esp + 0x580], eax
pop eax
push 3
mov dword [esp + 0x594], eax
mov dword [esp + 0x590], eax
mov dword [esp + 0x58c], eax
pop eax
push 5
pop edx
movdqu xmmword [esp + 0x6a0], xmm0
push 6
movdqa xmm0, xmmword [0xacc540]
movdqu xmmword [esp + 0x6b4], xmm0
mov dword [esp + 0x5bc], edx
movdqa xmm0, xmmword [0xacc550]
mov dword [esp + 0x5b8], edx
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b0], edx
pop edx
movdqu xmmword [esp + 0x6c0], xmm0
push 7
movdqa xmm0, xmmword [0xacc510]
mov dword [esp + 0x5c8], edx
mov dword [esp + 0x5c4], edx
mov dword [esp + 0x5c0], edx
pop edx
movdqu xmmword [esp + 0x6d0], xmm0
push ecx
movdqa xmm0, xmmword [0xacc520]
movdqu xmmword [esp + 0x6e4], xmm0
mov dword [esp + 0x57c], ecx
movdqa xmm0, xmmword [0xacc540]
mov dword [esp + 0x578], ecx
mov dword [esp + 0x574], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], ecx
push ecx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x5a4], eax
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5ac], edi
mov dword [esp + 0x5a8], edi
mov dword [esp + 0x5dc], edx
mov dword [esp + 0x5d8], edx
mov dword [esp + 0x5d4], edx
mov dword [esp + 0x5d0], edx
movdqu xmmword [esp + 0x6f8], xmm0
mov dword [esp + 0x708], eax
mov dword [esp + 0x70c], edi
call fcn.0040160a
lea eax, [esp + 0x220]
mov ecx, 0xad3ec0
push eax
call fcn.0044137b
mov edi, dword [esp + 0x220]
test edi, edi
je 0x43ba5b
lea eax, [esp + 0x2c0]
mov ebx, 0xad3ec0
push eax
push ecx
lea eax, [esp + 0x150]
mov ecx, ebx
push eax
dec edi
call fcn.0044137b
pop ecx
mov ecx, eax
call fcn.0044137b
lea edx, [esp + 0x104]
mov ecx, ebx
call fcn.004460ea
lea edx, [esp + 0x104]
mov ecx, ebx
call fcn.004460ea
xor edx, edx
xor ebx, ebx
or esi, 0xffffffff
cmp dword [esp + 0x114], edx
jle 0x43ba39
cmp dword [esp + 0x118], 0x10
lea eax, [esp + 0x104]
cmovae eax, dword [esp + 0x104]
cmp byte [eax + edx], 0x20
jne 0x43b97e
add ebx, dword [esp + 0x148]
or esi, 0xffffffff
jmp 0x43ba2b
cmp esi, 0xffffffff
je 0x43b9e1
cmp dword [esp + 0x118], 0x10
lea eax, [esp + 0x104]
cmovae eax, dword [esp + 0x104]
movsx ecx, byte [eax + edx]
mov eax, dword [esp + esi*4 + 0x570]
cmp eax, dword [esp + ecx*4 + 0x46c]
jne 0x43b9e1
cmp dword [esp + 0x118], 0x10
lea eax, [esp + 0x104]
cmovae eax, dword [esp + 0x104]
movsx eax, byte [eax + edx]
mov eax, dword [esp + eax*4 + 0x59c]
imul eax, dword [esp + 0x148]
add eax, dword [esp + 0x2c0]
jmp 0x43ba0b
cmp dword [esp + 0x118], 0x10
lea eax, [esp + 0x104]
cmovae eax, dword [esp + 0x104]
movsx eax, byte [eax + edx]
mov eax, dword [esp + eax*4 + 0x59c]
imul eax, dword [esp + 0x148]
add ebx, eax
cmp dword [esp + 0x118], 0x10
lea eax, [esp + 0x104]
cmovae eax, dword [esp + 0x104]
movsx esi, byte [eax + edx]
sub esi, 0x41
inc edx
cmp edx, dword [esp + 0x114]
jl 0x43b952
push ebx
mov ecx, 0xad3d78
call fcn.00441b73
push eax
call fcn.00446111
pop ecx
test edi, edi
jne 0x43b8fc
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
push 0
dec edi
lea ecx, [esp + 0x108]
push 1
mov dword [esp + 0x228], edi
call fcn.0040160a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
push ecx
push eax
mov ecx, 0xad3d78
call fcn.0042cb49
inc ebx
mov dword [esp + 0x14], ebx
push 4
pop edi
cmp ebx, 0xfd5
jl 0x43b75a
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 0x55f1
jl 0x43b754
xor ebx, ebx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x43bac3
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0x1efd400]
cmp dword [esp + 0x24], 0x5888
jge 0x43c3a3
mov edx, 0xac21dc
mov ecx, 0xad3d78
call fcn.0042f475
jmp 0x43c3a3
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], 0x2eed
cmp dword [esp + 0x14], 0x30c6
jle 0x43bb2c
push 0
push 0
call dword [0x1efd3e4]
xor esi, esi
xor edi, edi
mov eax, edi
mov ecx, 0xad3d78
xor eax, esi
cdq
push edx
push eax
call fcn.0042cb49
inc edi
cmp edi, 0x223a
jl 0x43bb09
inc esi
cmp esi, 0x3baf
jl 0x43bb07
mov dword [esp + 0x24], 0xb430
cmp dword [esp + 0x14], 0x2cfc
jge 0x43bb4d
mov edx, 0xac21fc
mov ecx, 0xad3d78
call fcn.0042f475
push 3
pop eax
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x504]
push eax
call fcn.0042ce8d
mov dword [esp + 0x18], 0x1dca
cmp dword [esp + 0x18], 0xc87
jge 0x43bc58
push 0x20000
lea eax, [esp + 0xc0c]
push 0
push eax
call fcn.00489cc5
add esp, 0xc
mov esi, 0x8000
xor edi, edi
mov dword [esp + 0x14], edi
mov edx, edi
mov dword [esp + 0xc], edi
imul edx, edi
lea eax, [edx + edx]
cmp eax, esi
jge 0x43bc07
mov ecx, edx
lea eax, [edx + ecx*2]
mov ebx, edi
cmp eax, esi
jge 0x43bbf2
mov esi, ecx
mov edi, ebx
lea eax, [edx + esi*2]
jmp 0x43bbce
inc dword [esp + eax*4 + 0xc08]
inc edi
mov eax, edi
imul eax, edi
add eax, esi
add eax, edx
add eax, ecx
cmp eax, 0x8000
jl 0x43bbbd
inc ebx
mov esi, ebx
imul esi, ebx
lea eax, [esi + edx]
add eax, ecx
cmp eax, 0x8000
jl 0x43bbb6
mov edi, dword [esp + 0xc]
mov esi, 0x8000
inc edi
mov ecx, edi
mov dword [esp + 0xc], edi
imul ecx, edi
lea eax, [edx + ecx]
cmp eax, esi
jl 0x43bbab
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x9f
jle 0x43bb99
lea eax, [esp + 0x150]
mov ebx, 0xac0ab4
push eax
push ebx
call fcn.004f9f6f
pop ecx
pop ecx
jmp 0x43bc4d
push dword [esp + eax*4 + 0xc08]
push 0xac0b2c
call fcn.004f967e
lea eax, [esp + 0x158]
push eax
push ebx
call fcn.004f9f6f
add esp, 0x10
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x43bc2b
mov dword [esp + 0x14], 0x3f88
mov dword [esp + 0x18], 0x1682
cmp dword [esp + 0x18], 0xaff
jge 0x43bd91
lea eax, [esp + 0x170]
push eax
lea eax, [esp + 0x25c]
push eax
push 0xac0d34
call fcn.004f9f6f
add esp, 0xc
push dword [esp + 0x174]
push dword [esp + 0x174]
push dword [esp + 0x264]
push dword [esp + 0x264]
call fcn.0050ec50
mov edi, ecx
mov esi, ebx
mov ecx, eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x170]
mov ebx, edx
sub eax, edi
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x174]
sbb edi, esi
mov dword [esp + 0x18], ecx
mov esi, ecx
mov ecx, ebx
sub esi, 1
sbb ecx, 0
push ecx
push esi
push edi
push eax
call fcn.004fdd80
mov edi, dword [esp + 0x18]
push ebx
push edi
push edx
push eax
call fcn.004fdd80
push 0
push 2
push edx
push eax
call fcn.00512730
mov esi, edi
mov dword [esp + 0x18], eax
push ebx
add esi, 1
mov dword [esp + 0x24], edx
mov ecx, ebx
push edi
adc ecx, 0
push ecx
push esi
call fcn.004fdd80
push dword [esp + 0x1c]
push dword [esp + 0x10]
push edx
push eax
call fcn.004fdd80
push 0
push 2
push edx
push eax
call fcn.00512730
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
add esi, eax
mov edi, dword [esp + 0x25c]
adc ebx, edx
mov edx, dword [esp + 0x258]
sub edx, dword [esp + 0x170]
mov ecx, edx
sbb edi, dword [esp + 0x174]
add ecx, 1
push edi
mov eax, edi
push edx
adc eax, 0
push eax
push ecx
call fcn.004fdd80
push 0
push 2
push edx
push eax
call fcn.00512730
push edx
push eax
push ebx
push esi
push 0xac0d34
call fcn.004f967e
add esp, 0x14
cmp dword [esp + 0x14], 0x4187
jle 0x43bde8
xor edi, edi
xor esi, esi
mov eax, edi
lea ecx, [esp + 0x95c]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43bdbf
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x964]
call fcn.0040160a
inc esi
cmp esi, 0x6250
jl 0x43bd9f
inc edi
cmp edi, 0x4aa6
jl 0x43bd9d
cmp dword [esp + 0x14], 0x3d71
jge 0x43bdfd
push 0xac2210
call fcn.004f967e
pop ecx
mov dword [esp + 0x14], 0x6796
cmp dword [esp + 0x14], 0x69ac
jle 0x43be56
xor eax, eax
mov dword [esp + 0xc], eax
xor ebx, ebx
xor esi, esi
xor edi, edi
add eax, ebx
mov ecx, 0xad3d78
or eax, edi
or eax, esi
cdq
push edx
push eax
call fcn.0042cb49
mov eax, dword [esp + 0xc]
inc edi
cmp edi, 0x38d7
jl 0x43be1b
inc esi
cmp esi, 0x7a
jl 0x43be19
inc ebx
cmp ebx, 0x13ad
jl 0x43be17
inc eax
mov dword [esp + 0xc], eax
cmp eax, 0xd97
jl 0x43be15
cmp dword [esp + 0x14], 0x6581
jge 0x43bfaf
mov dword [esp + 0x18], 0x146f
cmp dword [esp + 0x18], 0x8f5
jge 0x43bfa0
lea eax, [esp + 0x98]
push eax
push 0xac0ab8
call fcn.004f9f6f
pop ecx
jmp 0x43bf88
dec eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0x158]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x160]
mov bl, 1
pop ecx
xor edi, edi
mov dword [esp + 0x18], ebx
xor esi, esi
pop ecx
test eax, eax
jle 0x43bf01
lea eax, [esp + 0x1f4]
push eax
push 0xac0ab8
call fcn.004f9f6f
pop ecx
pop ecx
test esi, esi
jle 0x43beea
xor eax, eax
movzx ebx, bl
cmp dword [esp + 0x1f4], edi
cmovl ebx, eax
mov eax, dword [esp + 0x158]
inc esi
mov edi, dword [esp + 0x1f4]
cmp esi, eax
jl 0x43bec3
mov dword [esp + 0x14], ebx
xor cl, cl
xor dl, dl
xor esi, esi
mov byte [esp + 0x3f], cl
mov byte [esp + 0x13], dl
test eax, eax
jle 0x43bf61
mov bl, cl
lea eax, [esp + 0x188]
push eax
push 0xac0ab4
call fcn.004f9f6f
cmp dword [esp + 0x190], 1
mov dl, byte [esp + 0x1b]
sete al
or bl, al
cmp dword [esp + 0x190], 0
pop ecx
sete al
or dl, al
inc esi
pop ecx
mov byte [esp + 0x13], dl
cmp esi, dword [esp + 0x158]
jl 0x43bf15
mov byte [esp + 0x3f], bl
mov ebx, dword [esp + 0x14]
mov cl, byte [esp + 0x3f]
test bl, bl
jne 0x43bf71
test cl, cl
je 0x43bf6d
test dl, dl
jne 0x43bf71
xor cl, cl
jmp 0x43bf73
mov cl, 1
test cl, cl
mov eax, 0xac200c
mov ecx, 0xac2008
cmove eax, ecx
push eax
call fcn.004fae88
mov eax, dword [esp + 0x9c]
pop ecx
test eax, eax
jne 0x43be92
dec eax
mov dword [esp + 0x98], eax
mov edx, 0xac2228
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x14], 0x76d0
xor ebx, ebx
cmp dword [esp + 0x14], 0x76f0
jle 0x43c012
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0x1efd3b8]
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, 0xad3d78
xor eax, edi
cdq
push edx
push eax
call fcn.0042cb49
inc ebx
cmp ebx, 0x938
jl 0x43bfd4
inc esi
push 0
pop ebx
cmp esi, 0x6c2e
jl 0x43bfd4
inc edi
cmp edi, 0x7843
jl 0x43bfd2
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0x1efd3d0]
push 3
mov dword [esp + 0x30], ebx
pop edi
jmp 0x43c02e
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x234], 0x3cd3
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], edi
jl 0x43c01b
cmp dword [esp + 0x14], 0x74b5
jge 0x43c04d
mov edx, 0xac2270
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x2c], ebx
jmp 0x43c069
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x504]
mov dword [eax + ecx*4], 0x17c08a59
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], edi
jl 0x43c053
xor ecx, ecx
mov dword [esp + 0x2c], ebx
inc ecx
jmp 0x43c08b
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x2c8], 0x52f52174
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], ecx
jl 0x43c078
mov dword [esp + 0x2c], ebx
jmp 0x43c382
mov dword [esp + 0x14], 0x8ee
cmp dword [esp + 0x14], 0xa66
jle 0x43c0e7
mov edi, ebx
mov esi, ebx
mov eax, esi
mov ecx, 0xad3d78
cdq
idiv ebx
and edx, edi
mov eax, edx
cdq
push edx
push eax
call fcn.0042cb49
inc ebx
cmp ebx, 0x36f4
jl 0x43c0b0
inc esi
push 0
pop ebx
cmp esi, 0x5d14
jl 0x43c0b0
inc edi
cmp edi, 0x51cf
jl 0x43c0ae
push 3
pop edi
mov dword [esp + 0x1c], 0x87b332e
mov dword [esp + 0x18], 0x1a50
cmp dword [esp + 0x18], 0x127d
jge 0x43c215
push 0xc2ac98
push 0xc5be68
push 0xcbd8f4
push 0xac22c0
call fcn.004f9f6f
add esp, 0xc
call fcn.004422b2
cmp dword [0xcbd8f4], 0
mov esi, ebx
jle 0x43c164
mov eax, dword [0x1efb018]
lea eax, [eax + esi*4]
push eax
push 0xac0ab4
call fcn.004f9f6f
mov eax, dword [0x1efb018]
pop ecx
pop ecx
mov ecx, 0x1efb010
lea eax, [eax + esi*4]
push eax
call fcn.00441fc5
mov dword [eax], esi
inc esi
cmp esi, dword [0xcbd8f4]
jl 0x43c131
push 0x61a84
push 0xffffffffffffffff
push 0xc5be70
call fcn.00489cc5
add esp, 0xc
mov esi, ebx
cmp dword [0xcbd8f4], 0
jle 0x43c1b9
mov edi, 0xac0c1c
push 0x186a1
push ebx
push 0xcbd8f8
call fcn.00489cc5
add esp, 0xc
mov ecx, esi
call fcn.00439f21
test al, al
jne 0x43c1ad
push edi
call fcn.004fae88
pop ecx
inc esi
cmp esi, dword [0xcbd8f4]
jl 0x43c188
push 3
pop edi
push 0xac0c10
call fcn.004fae88
cmp dword [0xcbd8f4], 0
mov esi, ebx
pop ecx
jle 0x43c20b
test esi, esi
je 0x43c1db
push 0x20
call fcn.004fae7f
pop ecx
mov ecx, dword [0x1efb018]
mov eax, dword [esi*4 + 0xc5be70]
mov eax, dword [ecx + eax*4]
add eax, dword [ecx + esi*4]
cmp eax, dword [0xc5be68]
jne 0x43c1fa
push 0x30
jmp 0x43c1fc
push 0x31
call fcn.004fae7f
inc esi
pop ecx
cmp esi, dword [0xcbd8f4]
jl 0x43c1cf
push 0xa
pop eax
push eax
call fcn.004fae7f
pop ecx
cmp dword [esp + 0x14], 0x686
jge 0x43c22e
mov edx, 0xac22a0
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0xc], ebx
jmp 0x43c247
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x540], 0x1516ea3
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x43c234
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x30], ebx
jne 0x43c31d
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x540], eax
mov eax, dword [esp + 0x238]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x324]
mov eax, dword [esp + 0x23c]
cmp eax, dword [ecx + edx*4]
mov eax, dword [esp + 0x238]
setne bl
sub ebx, eax
jne 0x43c2a3
cmp dword [esp + 0x540], ebx
jne 0x43c2a5
mov eax, ebx
jmp 0x43c2a8
xor ebx, ebx
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
mov ecx, 0x7342932b
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x324]
mov eax, dword [esp + 0x14]
sub ecx, eax
imul ecx, dword [edx + esi*4]
test ecx, ecx
jne 0x43c2d7
cmp dword [esp + 0x238], ebx
jne 0x43c2d7
mov eax, ebx
jmp 0x43c2da
xor eax, eax
inc eax
mov ecx, 0x96bc712b
cmp ecx, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x548]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [esp + 0x238]
test ecx, ecx
jne 0x43c31d
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x238]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 1
mov eax, dword [esp + 0x504]
setge cl
sub ecx, dword [eax]
mov eax, 0xa29c1464
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x324]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x38]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x238], ebx
jne 0x43c38c
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], edi
jle 0x43c09a
mov eax, dword [esp + 0x2c8]
lea ecx, [esp + 0x504]
mov dword [esp + 0x14], eax
call fcn.0042d79d
lea ecx, [esp + 0x324]
call fcn.0042d79d
mov dword [esp + 0x14], 0x7f36
cmp dword [esp + 0x14], 0x82da
jle 0x43c41f
push ebx
push ebx
call dword [0x1efd3bc]
xor edi, edi
xor esi, esi
lea ecx, [esi + edi]
mov eax, ebx
shl eax, cl
lea ecx, [esp + 0x7dc]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43c3ed
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x7e4]
call fcn.0040160a
inc esi
cmp esi, 0x3804
jl 0x43c3cd
inc edi
cmp edi, 0x186c
jl 0x43c3cb
inc ebx
cmp ebx, 0x44ac
jl 0x43c3c9
imul eax, dword [esp + 0xb0], 0x2710
add eax, dword [esp + 0x40]
cmp dword [esp + 0x14], 0x7cea
mov dword [esp + 0x180], eax
jge 0x43c44a
push 0xac22c8
call fcn.004f967e
pop ecx
mov dword [esp + 0x30], 0x3480
cmp dword [esp + 0x30], 0x3773
jle 0x43c48f
xor ebx, ebx
xor esi, esi
xor edi, edi
lea eax, [edi + esi]
mov ecx, 0xad3d78
xor eax, ebx
cdq
push edx
push eax
call fcn.0042cb49
inc edi
cmp edi, 0x35fd
jl 0x43c462
inc esi
cmp esi, 0x5b4
jl 0x43c460
inc ebx
cmp ebx, 0x2f82
jl 0x43c45e
mov dword [esp + 0xc], 0x960f57a7
mov dword [esp + 0x18], 0x23d8
cmp dword [esp + 0x18], 0x502
jge 0x43c54f
lea eax, [esp + 0x204]
mov ebx, 0xac0ab8
push eax
push ebx
call fcn.004f9f6f
xor esi, esi
xor edi, edi
pop ecx
pop ecx
cmp dword [esp + 0x204], esi
jle 0x43c4f7
lea eax, [esp + 0x2e4]
push eax
push ebx
call fcn.004f9f6f
mov eax, dword [esp + 0x2ec]
cmp edi, eax
pop ecx
cmovg eax, edi
inc esi
mov edi, eax
pop ecx
cmp esi, dword [esp + 0x204]
jl 0x43c4cf
lea eax, [esp + 0x190]
push eax
push ebx
call fcn.004f9f6f
xor ebx, ebx
xor esi, esi
pop ecx
pop ecx
cmp dword [esp + 0x190], ebx
jle 0x43c540
lea eax, [esp + 0x2ec]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x2f4]
cmp esi, eax
pop ecx
cmovg eax, esi
inc ebx
mov esi, eax
pop ecx
cmp ebx, dword [esp + 0x190]
jl 0x43c514
push esi
push edi
push 0xac0b40
call fcn.004f967e
add esp, 0xc
mov dword [esp + 0x24], 0x3b01
mov dword [esp + 0x18], 0x2610
cmp dword [esp + 0x18], 0x7fb
jge 0x43c5ff
lea eax, [esp + 0xb8]
push eax
push 0xac0ab4
call fcn.004f9f6f
pop ecx
pop ecx
jmp 0x43c5ec
dec eax
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x304]
push eax
lea eax, [esp + 0x2f8]
push eax
lea eax, [esp + 0x314]
push eax
lea eax, [esp + 0x308]
push eax
push 0xac2330
call fcn.004f9f6f
mov eax, dword [esp + 0x320]
add esp, 0x14
mov edx, dword [esp + 0x2fc]
add eax, dword [esp + 0x304]
add edx, dword [esp + 0x2f4]
cmp eax, 0xc
jle 0x43c5dd
inc edx
sub eax, 0xc
push eax
push edx
push 0xac16d0
call fcn.004f967e
add esp, 0xc
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x43c583
dec eax
mov dword [esp + 0xb8], eax
cmp dword [esp + 0x24], 0x3e17
jle 0x43c789
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], 0x2432
cmp dword [esp + 0x18], 0x116e
jge 0x43c757
lea eax, [esp + 0xc0]
push eax
push 0xac0ab4
call fcn.004f9f6f
mov eax, dword [esp + 0xc8]
pop ecx
pop ecx
test eax, eax
je 0x43c74f
and dword [esp + 0x14], 0
dec eax
mov dword [esp + 0xc0], eax
mov eax, dword [0x1efb024]
mov dword [0x1efb028], eax
lea eax, [esp + 0x160]
push eax
push 0xac0ab4
call fcn.004f9f6f
mov edi, dword [esp + 0x168]
pop ecx
pop ecx
movd xmm0, edi
cvtdq2pd xmm0, xmm0
call fcn.00513380
cvttsd2si eax, xmm0
xor ecx, ecx
inc ecx
mov esi, ecx
mov dword [esp + 0x168], esi
mov dword [esp + 0x18], eax
cmp eax, ecx
jl 0x43c708
mov ebx, eax
mov eax, edi
cdq
idiv esi
test edx, edx
jne 0x43c6fc
lea eax, [esp + 0x168]
mov ecx, 0x1efb024
push eax
call fcn.0044225d
mov esi, dword [esp + 0x168]
mov ecx, esi
mov edi, dword [esp + 0x160]
imul ecx, esi
cmp ecx, edi
je 0x43c6fc
mov eax, edi
mov ecx, 0x1efb024
cdq
idiv esi
mov dword [esp + 0x314], eax
lea eax, [esp + 0x314]
push eax
call fcn.0044225d
mov edi, dword [esp + 0x160]
inc esi
mov dword [esp + 0x168], esi
cmp esi, ebx
jle 0x43c6a5
mov eax, dword [0x1efb028]
xor ecx, ecx
mov esi, dword [0x1efb024]
sub eax, esi
mov edx, dword [esp + 0x14]
sar eax, 2
test eax, eax
je 0x43c72f
cmp dword [esi + ecx*4], edi
je 0x43c72a
add edx, dword [esi + ecx*4]
inc ecx
cmp ecx, eax
jb 0x43c722
push edx
push 0xac0b2c
call fcn.004f967e
mov eax, dword [esp + 0xc8]
pop ecx
pop ecx
test eax, eax
jne 0x43c64c
mov ebx, dword [esp + 0x1c]
dec eax
mov dword [esp + 0xc0], eax
mov esi, ebx
mov edi, 0xfb
mov eax, esi
mov ecx, 0xad3d78
cdq
push edx
push eax
call fcn.0042cb49
dec esi
dec edi
jne 0x43c75e
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, 0x3c33
jl 0x43c613
push edi
call dword [0x1efd3c8]
mov dword [esp + 0x20], 0xdcc80fc3
mov dword [esp + 0x18], 0x1ceb
cmp dword [esp + 0x18], 0x126e
jge 0x43c8c5
push 0xcd5fd4
push 0xc2ae28
push 0xac0b30
call fcn.004f9f6f
mov eax, dword [0xcd5fd4]
xor ecx, ecx
inc ecx
add esp, 0xc
xor edi, edi
mov esi, ecx
mov ebx, ecx
cmp eax, ecx
jl 0x43c8a3
and dword [esp + 0x20], edi
mov dword [esp + 0x14], 0xdb1bb4
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x210]
push eax
push 0xac0b30
call fcn.004f9f6f
xor ecx, ecx
add esp, 0xc
inc ecx
cmp dword [esp + 0x20c], ecx
jne 0x43c82b
mov ecx, dword [esp + 0x14]
inc edi
mov eax, dword [esp + 0xc8]
mov dword [ecx], eax
add ecx, 4
inc dword [eax*4 + 0xed6b40]
inc dword [esp + 0x20]
mov dword [esp + 0x14], ecx
jmp 0x43c858
push 2
pop eax
cmp dword [esp + 0x20c], eax
jne 0x43c885
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x20]
sub edi, dword [eax*4 + 0xed6b40]
and dword [eax*4 + 0xed6b40], 0
mov dword [eax*4 + 0x102fd40], ecx
xor ecx, ecx
inc ecx
jmp 0x43c88e
cmp byte [esi + 0xcd5fe0], 0
jne 0x43c884
mov eax, dword [esi*4 + 0xdb1bb0]
mov byte [esi + 0xcd5fe0], cl
cmp dword [eax*4 + 0x102fd40], esi
jge 0x43c884
dec edi
dec dword [eax*4 + 0xed6b40]
inc esi
cmp esi, dword [esp + 0xc8]
jle 0x43c85d
mov eax, dword [0xcd5fd4]
mov dword [ebx*4 + 0xb05d10], edi
inc ebx
cmp ebx, eax
jle 0x43c7e0
mov esi, ecx
cmp eax, ecx
jl 0x43c8c5
push dword [esi*4 + 0xb05d10]
push 0xac0b2c
call fcn.004f967e
inc esi
pop ecx
pop ecx
cmp esi, dword [0xcd5fd4]
jle 0x43c8a9
cmp dword [esp + 0x24], 0x39ea
jge 0x43c8de
mov edx, 0xac2314
mov ecx, 0xad3d78
call fcn.0042f475
xor ebx, ebx
mov dword [esp + 0x14], 0x11bbb4f5
inc ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x14], 0x2617
cmp dword [esp + 0x14], 0x292e
jle 0x43c954
xor edi, edi
xor esi, esi
mov eax, esi
lea ecx, [esp + 0xa70]
xor eax, edi
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43c920
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push ebx
lea ecx, [esp + 0xa78]
call fcn.0040160a
inc esi
cmp esi, 0x273
jl 0x43c903
inc edi
cmp edi, 0x2886
jl 0x43c901
push 0
push 0
push 0
call dword [0x1efd294]
mov byte [esp + 0x13], 0
cmp dword [esp + 0x14], 0x24f1
jge 0x43c96e
push 0xac2340
call fcn.004f967e
pop ecx
mov dword [esp + 0x20], 0x2fc6
mov dword [esp + 0x18], 0x1f95
cmp dword [esp + 0x18], 0x11bf
jge 0x43c9dd
lea eax, [esp + 0x31c]
mov ebx, 0xad3ec0
push eax
mov ecx, ebx
call fcn.0044137b
mov esi, dword [esp + 0x31c]
test esi, esi
jle 0x43c9dd
lea eax, [esp + 0x3b4]
mov ecx, ebx
push eax
call fcn.0044137b
mov ecx, dword [esp + 0x3b4]
lea eax, [ecx - 1]
imul eax, ecx
mov ecx, 0xad3d78
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.00441b73
push eax
call fcn.00446111
pop ecx
dec esi
jne 0x43c9a7
cmp dword [esp + 0x20], 0x31f1
jle 0x43ca50
xor ebx, ebx
mov dword [esp + 0x14], ebx
xor esi, esi
mov ecx, esi
mov dword [esp + 0x18], ebx
xor edi, edi
sar ebx, cl
mov eax, ebx
lea ecx, [esp + 0x80c]
xor eax, edi
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43ca16
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x814]
call fcn.0040160a
inc edi
cmp edi, 0x2a20
jl 0x43c9f9
mov ebx, dword [esp + 0x14]
inc esi
cmp esi, 0x5970
jl 0x43c9ef
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, 0x2f05
jl 0x43c9ed
cmp byte [esp + 0x13], 0
je 0x43caec
mov dword [esp + 0x24], 0x71dc
cmp dword [esp + 0x24], 0x745e
jle 0x43cac7
push 0
call dword [0x1efd288]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], edi
xor esi, esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0x2923
mov eax, edi
mov ecx, 0xad3d78
xor eax, ebx
cdq
push edx
push eax
call fcn.0042cb49
add edi, esi
dec dword [esp + 0x14]
jne 0x43ca8b
mov edi, dword [esp + 0x1c]
dec esi
cmp esi, 0xffffbecb
jg 0x43ca7f
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 0x3952
jl 0x43ca7d
inc ebx
cmp ebx, 0x2d06
jl 0x43ca77
push 0
push 0
push 0
call dword [0x1efd434]
cmp dword [esp + 0x24], 0x6fb6
jge 0x43caec
mov edx, 0xac2408
mov ecx, 0xad3d78
call fcn.0042f475
cmp dword [esp + 0x20], 0x2f08
jge 0x43cb01
push 0xac23a8
call fcn.004f967e
pop ecx
mov dword [esp + 0x18], 0x2654
cmp dword [esp + 0x18], 0x961
jge 0x43cbe2
lea eax, [esp + 0x3b8]
push eax
lea eax, [esp + 0x19c]
push eax
push 0xac0b40
call fcn.004f9f6f
xorps xmm0, xmm0
xor ebx, ebx
movlpd qword [esp + 0x54], xmm0
add esp, 0xc
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
movlpd qword [esp + 0x58], xmm0
cmp dword [esp + 0x198], ebx
jle 0x43cbd3
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x3bc]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x3c4]
cdq
mov dword [esp + 0x2c], eax
sub eax, dword [esp + 0x1c]
pop ecx
pop ecx
mov ecx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3b8]
mov dword [esp + 0x20], ecx
sbb ecx, dword [esp + 0x1c]
cdq
cmp ecx, edx
jg 0x43cbb4
jl 0x43cbac
cmp dword [esp + 0x18], eax
ja 0x43cbb4
add edi, 1
adc esi, 0
jmp 0x43cbb9
xor edi, edi
inc edi
xor esi, esi
mov eax, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
cmp ebx, dword [esp + 0x198]
jl 0x43cb66
push esi
push edi
push 0xac0bc8
call fcn.004f967e
add esp, 0xc
xor ecx, ecx
cmp dword [esp + 0xc], 0x8974b66
je 0x43cc2f
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0xfffffffa
setne cl
xor edx, edx
cmp ecx, 0x823a
setg dl
xor eax, eax
cmp edx, 0x1e3f
setg al
xor ecx, ecx
inc ecx
cmp eax, ecx
jg 0x43cc21
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x43cc30
xor eax, eax
jmp 0x43cc32
inc ecx
mov eax, ecx
mov dword [esp + 0x14], eax
xor edx, edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setg dl
mov dword [esp + 0xc], edx
cmp dword [esp + 0x30], 0x3455
jge 0x43cc62
mov edx, 0xac22e4
mov ecx, 0xad3d78
call fcn.0042f475
lea eax, [esp + 0x180]
push eax
call fcn.00442ca6
mov eax, dword [eax]
test eax, eax
je 0x43cc81
mov dword [esp + 0x334], eax
jmp 0x44125a
mov dword [esp + 0x18], 0x185f
cmp dword [esp + 0x18], 0x10b4
jge 0x43cf7b
lea eax, [esp + 0x64]
mov dword [esp + 0x364], 0x3b9aca00
push eax
lea eax, [esp + 0x8c]
push eax
push 0xac0c68
call fcn.004f9f6f
and dword [esp + 0x354], 0
lea eax, [esp + 0x354]
add esp, 0xc
lea ecx, [esp + 0x424]
push eax
push dword [esp + 0x8c]
call fcn.004420ce
lea eax, [esp + 0x364]
push eax
push dword [esp + 0x8c]
lea ecx, [esp + 0x3fc]
call fcn.004420ce
push dword [esp + 0x64]
lea ecx, [esp + 0x490]
call fcn.0042ce8d
push dword [esp + 0x64]
lea ecx, [esp + 0x514]
call fcn.0042ce8d
push dword [esp + 0x64]
lea ecx, [esp + 0x4b4]
call fcn.0042ce8d
push dword [esp + 0x64]
lea ecx, [esp + 0x41c]
call fcn.0042ce8d
and dword [esp + 0x14], 0
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x48c]
mov edx, dword [esp + 0x510]
mov esi, dword [esp + 0x4b0]
mov edi, dword [esp + 0x418]
test eax, eax
jle 0x43ce29
mov ecx, ebx
mov eax, esi
mov ebx, dword [esp + 0x418]
sub ecx, edx
sub ebx, edx
mov dword [esp + 0x20], ecx
sub eax, edx
mov dword [esp + 0xc], ebx
mov edi, edx
mov dword [esp + 0x18], eax
lea eax, [edi + ebx]
add ecx, edi
mov ebx, dword [esp + 0x18]
push eax
add ebx, edi
mov dword [esp + 0x28], ecx
push ebx
push edi
push ecx
push 0xac0e68
call fcn.004f9f6f
add esp, 0x14
dec dword [edi]
dec dword [ebx]
mov edx, dword [edi]
cmp edx, dword [ebx]
jg 0x43cded
mov esi, dword [esp + 0x424]
mov eax, dword [esp + 0x3f4]
sub eax, esi
lea ecx, [esi + edx*4]
mov esi, eax
mov eax, dword [esp + 0x24]
cmp dword [eax], 1
mov eax, dword [esp + 0xc]
mov eax, dword [edi + eax]
jne 0x43cdd9
add dword [ecx], eax
jmp 0x43cde5
sub eax, dword [ecx]
cmp dword [esi + ecx], eax
cmovl eax, dword [esi + ecx]
mov dword [esi + ecx], eax
inc edx
add ecx, 4
cmp edx, dword [ebx]
jle 0x43cdc5
mov ecx, dword [esp + 0x14]
add edi, 4
mov eax, dword [esp + 0x64]
inc ecx
mov ebx, dword [esp + 0xc]
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
jl 0x43cd86
mov esi, dword [esp + 0x4b0]
mov edx, dword [esp + 0x510]
mov ebx, dword [esp + 0x48c]
mov edi, dword [esp + 0x418]
xor ecx, ecx
cmp dword [esp + 0x88], ecx
jle 0x43ce4d
mov eax, dword [esp + 0x424]
and dword [eax + ecx*4], 0
inc ecx
cmp ecx, dword [esp + 0x88]
jl 0x43ce3b
mov eax, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x43cef2
sub edx, esi
sub ebx, esi
sub edi, esi
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edi
mov edi, dword [edx + esi]
or ebx, 0xffffffff
cmp edi, dword [esi]
jg 0x43cecb
mov ecx, dword [esp + 0x424]
mov eax, dword [esp + 0x3f4]
sub eax, ecx
mov dword [esp + 0x18], eax
lea edx, [ecx + edi*4]
mov ecx, dword [esp + 0xc]
cmp dword [ecx + esi], 1
jne 0x43cea3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi]
add dword [edx], eax
jmp 0x43ceb3
mov ecx, dword [eax + edx]
mov eax, dword [edx]
add eax, ecx
mov ecx, dword [esp + 0xc]
cmp ebx, eax
cmovle ebx, eax
mov eax, dword [esp + 0x18]
inc edi
add edx, 4
cmp edi, dword [esi]
jle 0x43ce92
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
cmp dword [edi + esi], 2
jne 0x43cee2
mov edi, dword [esp + 0x14]
cmp ebx, dword [edi + esi]
jne 0x43d073
inc ecx
add esi, 4
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jl 0x43ce6d
push 0xac0c10
call fcn.004fae88
xor esi, esi
pop ecx
cmp dword [esp + 0x88], esi
jle 0x43cf28
mov eax, dword [esp + 0x3f4]
push dword [eax + esi*4]
push 0xac0c14
call fcn.004f967e
inc esi
pop ecx
pop ecx
cmp esi, dword [esp + 0x88]
jl 0x43cf08
push 0xabec31
call fcn.004fae88
pop ecx
lea ecx, [esp + 0x418]
call fcn.0042d79d
lea ecx, [esp + 0x4b0]
call fcn.0042d79d
lea ecx, [esp + 0x510]
call fcn.0042d79d
lea ecx, [esp + 0x48c]
call fcn.0042d79d
lea ecx, [esp + 0x3f4]
call fcn.0042d79d
lea ecx, [esp + 0x424]
call fcn.0042d79d
push 4
lea ecx, [esp + 0x4e4]
call fcn.0042ce8d
mov dword [esp + 0x1c], 0x69e5
cmp dword [esp + 0x1c], 0x6cd2
jle 0x43cfe3
xor edi, edi
mov dword [esp + 0x14], edi
xor esi, esi
mov eax, esi
xor ebx, ebx
xor eax, edi
mov dword [esp + 0x18], eax
mov edi, eax
mov eax, ebx
mov ecx, 0xad3d78
or eax, edi
cdq
push edx
push eax
call fcn.0042cb49
inc ebx
cmp ebx, 0x4347
jl 0x43cfaf
mov edi, dword [esp + 0x14]
inc esi
cmp esi, 0x530a
jl 0x43cfa3
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x2f2b
jl 0x43cfa1
xor ebx, ebx
inc ebx
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x1c], 0x661c
jge 0x43d003
mov edx, 0xac2460
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x28], 0x66e9f086
mov dword [esp + 0x14], 0x7f8d
cmp dword [esp + 0x14], 0x8056
jle 0x43d066
xor edi, edi
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x98c]
or eax, edi
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43d03e
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push ebx
lea ecx, [esp + 0x994]
call fcn.0040160a
inc esi
cmp esi, 0x75cb
jl 0x43d021
inc edi
cmp edi, 0x5eae
jl 0x43d01f
push 4
mov dword [esp + 0x10], 0
pop edx
jmp 0x43d094
mov eax, 0xac0c1c
push eax
jmp 0x43cf2d
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x4e0]
mov dword [eax + ecx*4], 0xb0e446df
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x43d07e
cmp dword [esp + 0x14], 0x7c00
jge 0x43d0af
push 0xac2484
call fcn.004f967e
pop ecx
mov ebx, dword [esp + 0x4e0]
xor eax, eax
mov dword [esp + 0x30], ebx
mov edx, dword [ebx + 4]
test edx, edx
sete al
xor ecx, ecx
cmp eax, edx
setl cl
add ecx, edx
add ecx, dword [ebx + 0xc]
neg ecx
sub ecx, edx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setl al
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
sub ecx, dword [ebx + 4]
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
add eax, ecx
je 0x43d693
mov dword [esp + 0x18], 0x18f7
cmp dword [esp + 0x18], 0x78b
jge 0x43d279
lea eax, [esp + 0x124]
push eax
push 0xac0ab8
call fcn.004f9f6f
pop ecx
pop ecx
push dword [esp + 0x124]
lea ecx, [esp + 0x4cc]
call fcn.0042ce8d
mov ebx, dword [esp + 0x4c8]
xor edi, edi
cmp dword [esp + 0x124], edi
jle 0x43d179
mov esi, ebx
push esi
push 0xac0ab8
call fcn.004f9f6f
inc edi
add esi, 4
pop ecx
pop ecx
cmp edi, dword [esp + 0x124]
jl 0x43d158
mov ebx, dword [esp + 0x4c8]
lea eax, [esp + 0xd8]
push eax
push 0xac0ab8
call fcn.004f9f6f
pop ecx
pop ecx
jmp 0x43d256
dec eax
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x2b4]
push eax
push 0xac0ab8
call fcn.004f9f6f
cmp dword [esp + 0x2bc], 1
pop ecx
pop ecx
jne 0x43d213
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x124]
push eax
push 0xac0c68
call fcn.004f9f6f
mov ecx, dword [esp + 0x12c]
xorps xmm0, xmm0
movlpd qword [esp + 0x54], xmm0
add esp, 0xc
mov esi, dword [esp + 0x4c]
dec ecx
mov edi, dword [esp + 0x48]
cmp ecx, dword [esp + 0x90]
jge 0x43d202
mov eax, dword [ebx + ecx*4]
cdq
add edi, eax
adc esi, edx
inc ecx
jmp 0x43d1ee
push esi
push edi
push 0xac0bc8
call fcn.004f967e
add esp, 0xc
jmp 0x43d256
lea eax, [esp + 0x35c]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x128]
push eax
push 0xac0d24
call fcn.004f9f6f
mov ecx, dword [esp + 0x130]
add esp, 0x10
dec ecx
jmp 0x43d24d
mov eax, dword [esp + 0x35c]
xor dword [ebx + ecx*4], eax
inc ecx
cmp ecx, dword [esp + 0x90]
jl 0x43d242
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x43d192
dec eax
lea ecx, [esp + 0x4c8]
mov dword [esp + 0xd8], eax
call fcn.0042d79d
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x14], 0x62fb
cmp dword [esp + 0x14], 0x6528
jle 0x43d4cb
mov dword [esp + 0x18], 0x14df
cmp dword [esp + 0x18], 0x9ab
jge 0x43d322
lea eax, [esp + 0x14c]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov esi, dword [esp + 0x154]
xor eax, eax
inc eax
mov ebx, eax
pop ecx
pop ecx
cmp esi, eax
jl 0x43d322
mov edi, eax
cmp esi, eax
jl 0x43d308
mov edx, edi
lea ecx, [edi - 1]
and dl, al
imul ecx, esi
mov eax, edi
imul eax, esi
add ecx, ebx
sub eax, ebx
inc eax
test dl, dl
cmovne eax, ecx
push eax
push 0xac0c14
call fcn.004f967e
mov esi, dword [esp + 0x154]
inc edi
pop ecx
pop ecx
push 1
pop eax
cmp edi, esi
jle 0x43d2d3
push 0xabec31
call fcn.004fae88
mov esi, dword [esp + 0x150]
inc ebx
pop ecx
push 1
pop eax
cmp ebx, esi
jle 0x43d2cd
xor esi, esi
xor edi, edi
mov dword [esp + 0x18], 0x1dc5
cmp dword [esp + 0x18], 0x6b4
jge 0x43d4a0
mov edx, 0x516760
mov ecx, 0xad3ec0
call fcn.00446f4f
push 2
pop eax
push eax
push 0
lea eax, [esp + 0x844]
mov ecx, 0x516760
push eax
call fcn.004412fc
push eax
mov ecx, 0x516730
call fcn.0042d1fd
xor ebx, ebx
lea ecx, [esp + 0x83c]
push 0
inc ebx
push ebx
call fcn.0040160a
push 2
pop eax
push eax
push 3
pop eax
push eax
lea eax, [esp + 0xa60]
mov ecx, 0x516760
push eax
call fcn.004412fc
push eax
mov ecx, 0x516748
call fcn.0042d1fd
push 0
push ebx
lea ecx, [esp + 0xa60]
call fcn.0040160a
sub esp, 0x18
mov ecx, esp
push 0x516748
call fcn.0042cae4
lea ecx, [esp + 0x884]
call fcn.0043a121
add esp, 0x18
mov ecx, 0x516748
push eax
call fcn.0042d1fd
push 0
push ebx
lea ecx, [esp + 0x874]
call fcn.0040160a
push 0xac24e0
mov ecx, 0x516748
call fcn.00441326
test eax, eax
jne 0x43d446
push 0xac24e4
mov ecx, 0x516748
call fcn.004412b7
sub esp, 0x18
mov ecx, esp
push 0x516730
call fcn.0042cae4
lea ecx, [esp + 0x9c8]
call fcn.0043a121
add esp, 0x18
mov ecx, 0x516730
push eax
call fcn.0042d1fd
push 0
push ebx
lea ecx, [esp + 0x9b8]
call fcn.0040160a
push 0xac24e8
mov ecx, 0x516730
call fcn.00441326
test eax, eax
jne 0x43d468
push 0xac24e4
mov ecx, 0x516730
call fcn.004412b7
call fcn.0043a0c3
test al, al
je 0x43d3b4
mov edx, 0x516730
mov ecx, 0xad3d78
call fcn.00446447
mov dl, 0x3a
mov ecx, eax
call fcn.0044626e
mov edx, 0x516748
mov ecx, eax
call fcn.00446447
push eax
call fcn.00446111
pop ecx
mov eax, edi
mov ecx, 0xad3d78
xor eax, esi
cdq
push edx
push eax
call fcn.0042cb49
inc edi
cmp edi, 0x272e
jl 0x43d326
inc esi
cmp esi, 0x78b8
jl 0x43d324
xor ebx, ebx
lea ecx, [esp + 0x51c]
inc ebx
push ebx
call fcn.0042ce8d
cmp dword [esp + 0x14], 0x60d1
jge 0x43d4f4
mov edx, 0xac24a8
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x14], 0xaaa4f69a
mov dword [esp + 0xc], 0
jmp 0x43d51c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x51c]
mov dword [eax + ecx*4], 0x5e04a276
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x43d506
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0x51c]
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
cmp eax, 0x122
setge cl
xor eax, eax
sub ecx, edx
cmp ecx, 0xd7276cc7
mov ecx, dword [esp + 0x30]
setne al
add eax, dword [ecx + 0xc]
sub eax, edx
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, ebx
setl cl
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], 0x6573
cmp dword [esp + 0x14], 0x67ff
jle 0x43d658
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0x1efd050]
xor edi, edi
xor esi, esi
mov dword [esp + 0x18], 0x13e3
cmp dword [esp + 0x18], 0x4c3
jge 0x43d609
lea eax, [esp + 0x200]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x208]
xor ebx, ebx
pop ecx
pop ecx
test eax, eax
jle 0x43d5f9
mov ecx, eax
and ecx, 0x80000007
jns 0x43d5dd
dec ecx
or ecx, 0xfffffff8
inc ecx
dec ecx
cdq
neg ecx
sbb ecx, ecx
and edx, 7
add eax, edx
inc ecx
sar eax, 3
add ebx, ecx
test eax, eax
jg 0x43d5ce
mov dword [esp + 0x200], eax
push ebx
push 0xac0b2c
call fcn.004f967e
pop ecx
xor ebx, ebx
pop ecx
inc ebx
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [esp + 0x89c]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43d628
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push ebx
lea ecx, [esp + 0x8a4]
call fcn.0040160a
inc esi
cmp esi, 0x3a82
jl 0x43d59b
inc edi
cmp edi, 0x141
jl 0x43d599
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x43d66d
push eax
push eax
push eax
call dword [0x1efd2d8]
cmp dword [esp + 0x14], 0x6329
jge 0x43d682
push 0xac24f0
call fcn.004f967e
pop ecx
lea ecx, [esp + 0x51c]
call fcn.0042d79d
jmp 0x43ddc8
mov dword [esp + 0x1c], 0x630a
cmp dword [esp + 0x1c], 0x65d8
jle 0x43d6fc
push 0
push 0
push 0
push 0
push 0
call dword [0x1efd420]
xor edi, edi
mov dword [esp + 0x14], edi
xor esi, esi
mov eax, edi
xor ebx, ebx
cdq
idiv esi
mov edi, edx
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0xad3d78
cdq
push edx
push eax
call fcn.0042cb49
inc ebx
cmp ebx, 0x3d51
jl 0x43d6c6
mov edi, dword [esp + 0x14]
inc esi
cmp esi, 0x5f87
jl 0x43d6bd
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x6a8c
jl 0x43d6bb
mov dword [esp + 0x14], 0xa1d127a4
cmp dword [esp + 0x1c], 0x62bf
jge 0x43d7fc
mov dword [esp + 0x18], 0x19da
cmp dword [esp + 0x18], 0xcac
jge 0x43d7ed
lea eax, [esp + 0x1a0]
mov ebx, 0xad3ec0
push eax
mov ecx, ebx
call fcn.0044137b
xor eax, eax
inc eax
mov esi, eax
cmp dword [esp + 0x1a0], eax
jl 0x43d7ed
movsd xmm0, qword [0xacc4f8]
call fcn.00512c90
movsd qword [esp + 0x48], xmm0
push esi
push 0xac256c
call fcn.004f967e
pop ecx
pop ecx
lea eax, [esp + 0x2bc]
push eax
push ecx
lea eax, [esp + 0x5f8]
mov ecx, ebx
push eax
call fcn.004416e2
pop ecx
mov ecx, eax
call fcn.0044137b
movd xmm1, dword [esp + 0x2bc]
movsd xmm0, qword [esp + 0x48]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.005131b0
movsd xmm1, qword [0xacc4a0]
divsd xmm1, xmm0
push ecx
push ecx
movsd xmm0, qword [esp + 0x5f8]
addsd xmm1, qword [0xacc4a0]
divsd xmm0, xmm1
movsd qword [esp], xmm0
push 0xac257c
call fcn.004f967e
add esp, 0xc
inc esi
cmp esi, dword [esp + 0x1a0]
jle 0x43d761
mov edx, 0xac2534
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x1c], 0x2b1c
cmp dword [esp + 0x1c], 0x2b32
jle 0x43d946
mov edi, dword [esp + 0x2ac]
xor eax, eax
mov dword [esp + 0xc], eax
xor ebx, ebx
xor esi, esi
add eax, ebx
mov dword [esp + 0x18], 0x2499
mov ecx, esi
shl eax, cl
cmp dword [esp + 0x18], 0x8a3
cdq
mov ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], ecx
jge 0x43d8e1
push 0xc2ae24
push 0xd1f3c8
push 0xac0b30
call fcn.004f9f6f
add esp, 0xc
push 0xffeea0
push 0xac0b38
call fcn.004f9f6f
mov eax, dword [0xc2ae24]
pop ecx
pop ecx
mov byte [eax + 0xc2b120], 0
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov dword [esp + 0x20], eax
cmp dword [0xd1f3c8], edx
jle 0x43d8c8
mov ecx, 0xc2b120
cmp byte [edx + 0xffeea0], 0x28
jne 0x43d8ab
test eax, eax
jle 0x43d8a8
mov byte [ecx], 0x28
inc ecx
inc edi
dec eax
jmp 0x43d8bf
cmp dword [esp + 0x20], 0
jle 0x43d8bb
test edi, edi
jle 0x43d8bb
mov byte [ecx], 0x29
inc ecx
dec edi
dec dword [esp + 0x20]
inc edx
cmp edx, dword [0xd1f3c8]
jl 0x43d896
push 0xc2b120
push 0xac0b3c
call fcn.004f967e
mov eax, dword [esp + 0x2c]
pop ecx
pop ecx
mov ecx, dword [esp + 0x38]
push ecx
push eax
lea ecx, [esp + 0xa30]
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43d8f9
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0xa30]
call fcn.0040160a
mov eax, dword [esp + 0xc]
inc esi
cmp esi, 0x3781
jl 0x43d823
inc ebx
cmp ebx, 0x19cc
jl 0x43d821
inc eax
mov dword [esp + 0xc], eax
cmp eax, 0x2d9c
jl 0x43d81f
push 0
call dword [0x1efd3d4]
mov dword [esp + 0x18], 0x26b6
cmp dword [esp + 0x18], 0x724
jge 0x43da2a
lea eax, [esp + 0x2c4]
mov ebx, 0xad3ec0
push eax
push ecx
lea eax, [esp + 0x230]
push eax
push ecx
lea eax, [esp + 0x3bc]
mov ecx, ebx
push eax
call fcn.0044137b
pop ecx
mov ecx, eax
call fcn.0044137b
pop ecx
mov ecx, eax
call fcn.0044137b
mov eax, dword [esp + 0x228]
mov edi, dword [esp + 0x3ac]
cdq
idiv edi
mov esi, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x228], esi
cmp esi, edi
jge 0x43d9d7
lea ebx, [esi*4 + 0xd1f3d0]
sub edi, esi
push ebx
mov ecx, 0xad3ec0
call fcn.0044137b
add ebx, 4
dec edi
jne 0x43d9bd
mov esi, dword [esp + 0x18]
mov ebx, 0xad3ec0
test esi, esi
jle 0x43d9ee
mov edi, 0xd1f3d0
push edi
mov ecx, ebx
call fcn.0044137b
add edi, 4
dec esi
jne 0x43d9e0
mov esi, dword [esp + 0x2c4]
test esi, esi
jle 0x43da2a
lea eax, [esp + 0x2d0]
mov ecx, ebx
push eax
call fcn.0044137b
mov eax, dword [esp + 0x2d0]
mov ecx, 0xad3d78
push dword [eax*4 + 0xd1f3d0]
call fcn.00441b73
push eax
call fcn.00446111
pop ecx
dec esi
jne 0x43d9f9
dec dword [esp + 0x14]
cmp dword [esp + 0x1c], 0x2887
jge 0x43db17
mov dword [esp + 0x18], 0x24d8
cmp dword [esp + 0x18], 0xa99
jge 0x43db0c
lea eax, [esp + 0x1a8]
push eax
lea eax, [esp + 0xe4]
push eax
push 0xac0c68
call fcn.004f9f6f
mov eax, dword [esp + 0xec]
add esp, 0xc
xor edi, edi
xor esi, esi
xor ebx, ebx
mov cl, 1
mov byte [esp + 0x13], cl
test eax, eax
je 0x43daef
dec eax
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x2cc]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x2d4]
pop ecx
pop ecx
test eax, eax
jne 0x43dac6
test esi, esi
js 0x43daba
test edi, edi
cmovg eax, edi
mov edi, eax
jmp 0x43dae0
mov esi, dword [esp + 0x1a8]
inc ebx
xor edi, edi
jmp 0x43dae0
add edi, eax
add esi, eax
mov eax, dword [esp + 0x1a8]
cmp edi, eax
jg 0x43ddd5
cmp esi, eax
cmovl eax, esi
mov esi, eax
mov eax, dword [esp + 0xe0]
test eax, eax
jne 0x43da86
mov cl, byte [esp + 0x13]
dec eax
mov dword [esp + 0xe0], eax
or eax, 0xffffffff
test cl, cl
cmovne eax, ebx
push eax
push 0xac0b4c
call fcn.004f967e
pop ecx
pop ecx
push 0xac2584
call fcn.004f967e
pop ecx
mov dword [esp + 0x20], 0x1096
cmp dword [esp + 0x20], 0x1468
jle 0x43dc90
xor edi, edi
mov dword [esp + 0xc], edi
xor esi, esi
mov dword [esp + 0x24], 0xd01
mov dword [esp + 0x1c], esi
xor ebx, ebx
mov edi, 0xac0c1c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x14f1
cmp dword [esp + 0x18], 0xaef
jge 0x43dc49
lea eax, [esp + 0xe8]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0xf0]
pop ecx
pop ecx
test eax, eax
je 0x43dc41
dec eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x20c]
push eax
lea eax, [esp + 0x2e4]
push eax
push 0xac0d24
call fcn.004f9f6f
xor esi, esi
add esp, 0x10
xor bl, bl
cmp dword [esp + 0x208], esi
jle 0x43dbf0
lea eax, [esp + 0x2d4]
push eax
push 0xac0ab8
call fcn.004f9f6f
mov eax, dword [esp + 0x2dc]
cmp eax, dword [esp + 0x2e4]
pop ecx
sete al
or bl, al
inc esi
pop ecx
cmp esi, dword [esp + 0x208]
jl 0x43dbbf
xor esi, esi
cmp dword [esp + 0x17c], esi
jle 0x43dc19
lea eax, [esp + 0x600]
push eax
push 0xac0ab8
call fcn.004f9f6f
inc esi
pop ecx
pop ecx
cmp esi, dword [esp + 0x17c]
jl 0x43dbfb
test bl, bl
mov eax, 0xac0c10
cmove eax, edi
push eax
call fcn.004fae88
mov eax, dword [esp + 0xec]
pop ecx
test eax, eax
jne 0x43db85
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
dec eax
mov dword [esp + 0xe8], eax
mov eax, ebx
mov ecx, 0xad3d78
and eax, esi
cdq
push edx
push eax
call fcn.0042cb49
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, 0x4481
jl 0x43db4c
mov edi, dword [esp + 0xc]
add esi, edi
dec dword [esp + 0x24]
mov dword [esp + 0x1c], esi
jne 0x43db41
inc edi
mov dword [esp + 0xc], edi
cmp edi, 0x1170
jl 0x43db33
mov byte [esp + 0x13], 0
cmp dword [esp + 0x20], 0xfbb
jge 0x43dcae
mov edx, 0xac25c0
mov ecx, 0xad3d78
call fcn.0042f475
mov dword [esp + 0x1c], 0x302f
cmp dword [esp + 0x1c], 0x32fa
jle 0x43dd02
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, edi
mov ecx, 0xad3d78
xor eax, esi
or eax, ebx
cdq
push edx
push eax
call fcn.0042cb49
inc edi
cmp edi, 0x5aca
jl 0x43dcc6
inc esi
cmp esi, 0x555a
jl 0x43dcc4
inc ebx
cmp ebx, 0xe52
jl 0x43dcc2
push 0
push 0
push 0
push 0
call dword [0x1efd3b4]
cmp byte [esp + 0x13], 0
je 0x43ddac
mov dword [esp + 0x14], 0x607
cmp dword [esp + 0x14], 0x6a0
jle 0x43dd8f
xor ecx, ecx
mov dword [esp + 0xc], ecx
xor ebx, ebx
xor edi, edi
xor esi, esi
mov eax, esi
xor eax, edi
xor eax, ebx
xor eax, ecx
lea ecx, [esp + 0x8cc]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43dd4c
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x8d4]
call fcn.0040160a
mov ecx, dword [esp + 0xc]
inc esi
cmp esi, 0xab6
jl 0x43dd2b
inc edi
cmp edi, 0x55f7
jl 0x43dd29
inc ebx
cmp ebx, 0x5db6
jl 0x43dd27
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, 0x5cea
jl 0x43dd25
push 0
call dword [0x1efd074]
cmp dword [esp + 0x14], 0x4f5
jge 0x43ddac
push 0xac2648
call fcn.004f967e
pop ecx
cmp dword [esp + 0x1c], 0x2ede
jge 0x43ddc5
mov edx, 0xac2614
mov ecx, 0xad3d78
call fcn.0042f475
xor ebx, ebx
inc ebx
mov dword [esp + 0x28], 0xffffffee
jmp 0x43e17b
xor cl, cl
jmp 0x43daf7
mov dword [esp + 0xc], 0xfea1e173
mov dword [esp + 0x1c], 0x6772
cmp dword [esp + 0x1c], 0x67f0
jle 0x43dfdc
push 0
call dword [0x1efd290]
mov dword [esp + 0x18], 0x1e34
cmp dword [esp + 0x18], 0x1146
jge 0x43df94
xor eax, eax
lea ecx, [esp + 0x3dc]
push eax
push eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x3f8], eax
call fcn.0040160a
lea edx, [esp + 0x3dc]
mov ecx, 0xad3ec0
call fcn.004460ea
lea eax, [esp + 0xa0]
push eax
push 0xac0b2c
call fcn.004f9f6f
pop ecx
pop ecx
jmp 0x43df56
dec eax
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x12c]
push eax
push ecx
lea eax, [esp + 0x1b8]
push eax
push ecx
lea eax, [esp + 0x17c]
mov ecx, 0xad3ec0
push eax
call fcn.004414ba
pop ecx
mov ecx, eax
call fcn.004414ba
pop ecx
mov ecx, eax
call fcn.004414ba
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x1b0]
dec ecx
mov eax, dword [esp + 0x12c]
dec ebx
mov dword [esp + 0x1b0], ebx
sub ebx, ecx
cdq
inc ebx
idiv ebx
push ebx
push ecx
lea eax, [esp + 0x648]
mov dword [esp + 0x174], ecx
push eax
lea ecx, [esp + 0x3e8]
mov dword [esp + 0x138], edx
call fcn.004412fc
xor ecx, ecx
mov dword [esp + 0x14], ecx
test ebx, ebx
jle 0x43df44
cmp dword [esp + 0x654], 0x10
lea edi, [esp + 0x640]
mov eax, ecx
lea esi, [esp + 0x3dc]
cmovae edi, dword [esp + 0x640]
cmp dword [esp + 0x3f0], 0x10
cmovae esi, dword [esp + 0x3dc]
sub eax, dword [esp + 0x12c]
add eax, ebx
add ecx, dword [esp + 0x16c]
cdq
idiv ebx
mov al, byte [edx + edi]
mov byte [ecx + esi], al
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, ebx
jl 0x43deee
xor ebx, ebx
lea ecx, [esp + 0x640]
push 0
inc ebx
push ebx
call fcn.0040160a
mov eax, dword [esp + 0xa0]
test eax, eax
jne 0x43de60
dec eax
lea edx, [esp + 0x3dc]
mov ecx, 0xad3d78
mov dword [esp + 0xa0], eax
call fcn.00446447
push eax
call fcn.00446111
pop ecx
push 0
push ebx
lea ecx, [esp + 0x3e4]
call fcn.0040160a
xor edi, edi
xor esi, esi
lea eax, [esi + edi]
cdq
lea ecx, [esp + 0x9e0]
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43dfb4
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push ebx
lea ecx, [esp + 0x9e8]
call fcn.0040160a
inc esi
cmp esi, 0x5b8e
jl 0x43df98
inc edi
cmp edi, 0x3f17
jl 0x43df96
mov dword [esp + 0x18], 0x258a
cmp dword [esp + 0x18], 0xd8c
jge 0x43e0c8
xor esi, esi
lea eax, [esp + 0x36c]
add eax, esi
push eax
lea eax, [esp + 0x384]
add eax, esi
push eax
push 0xac16d0
call fcn.004f9f6f
add esi, 4
add esp, 0xc
cmp esi, 0x10
jl 0x43dff4
mov edx, dword [esp + 0x380]
mov ebx, dword [esp + 0x378]
mov ecx, dword [esp + 0x370]
mov edi, dword [esp + 0x388]
cmp edx, ebx
jle 0x43e053
cmp ecx, edi
jle 0x43e053
cmp edx, dword [esp + 0x374]
jle 0x43e053
cmp ecx, dword [esp + 0x38c]
jg 0x43e07b
mov esi, dword [esp + 0x384]
mov eax, dword [esp + 0x36c]
cmp esi, ebx
jle 0x43e082
cmp eax, edi
jle 0x43e082
cmp esi, dword [esp + 0x374]
jle 0x43e082
cmp eax, dword [esp + 0x38c]
jle 0x43e082
push 0xac26d0
jmp 0x43e0c2
cmp edx, ebx
jge 0x43e08a
cmp ecx, edi
jl 0x43e09c
cmp edx, dword [esp + 0x374]
jge 0x43e0bd
cmp ecx, dword [esp + 0x38c]
jge 0x43e0bd
cmp esi, ebx
jge 0x43e0a4
cmp eax, edi
jl 0x43e0b6
cmp esi, dword [esp + 0x374]
jge 0x43e0bd
cmp eax, dword [esp + 0x38c]
jge 0x43e0bd
push 0xac26d8
jmp 0x43e0c2
push 0xac26e0
call fcn.004fae88
pop ecx
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov ebx, dword [esp + 0x30]
cmp eax, 9
mov eax, dword [esp + 0xc]
setg cl
sub eax, ecx
jne 0x43e0e9
cmp dword [ebx + 4], eax
jne 0x43e0e9
xor ecx, ecx
jmp 0x43e0ec
xor ecx, ecx
inc ecx
xor eax, eax
test ecx, ecx
setle al
sub eax, 0x18c1b061
jne 0x43e104
cmp dword [esp + 0xc], eax
jne 0x43e104
xor edx, edx
jmp 0x43e107
xor edx, edx
inc edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
lea ecx, [eax + ecx*4]
imul eax, edx, 0xffff
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
mov ecx, 0xc81b9349
setle dl
sub edx, dword [ebx + 4]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
inc ebx
imul eax, edx
cmp eax, ebx
sbb eax, eax
neg eax
cmp ecx, eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x1c], 0x6505
jge 0x43e15e
push 0xac26a8
call fcn.004f967e
pop ecx
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x43e177
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0x1efd080]
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0x19
jge 0x43dddc
lea ecx, [esp + 0x4e0]
call fcn.0042d79d
mov eax, dword [0x1efb1a0]
test al, 2
jne 0x43e1b3
or eax, 2
mov dword [0x1efb1a0], eax
call fcn.00442d08
push 0x5145f9
call fcn.004f932f
pop ecx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x534]
mov dword [esp + 0x20], 0xc5a3d7f1
mov dword [esp + 0x14], 0x8661
push ebx
call fcn.0042ce8d
mov dword [esp + 0xc], 0
jmp 0x43e1f4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x534]
mov dword [eax + ecx*4], 0xe6a4137d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x43e1de
mov dword [esp + 0x1c], 0x5ba9
cmp dword [esp + 0x1c], 0x5cce
jle 0x43e27b
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x14], 0x59d2
xor esi, esi
mov eax, ebx
lea ecx, [esp + 0x8fc]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43e23a
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x904]
call fcn.0040160a
inc esi
cmp esi, 0x515e
jl 0x43e21a
add ebx, edi
dec dword [esp + 0x14]
jne 0x43e218
inc edi
cmp edi, 0x4407
jl 0x43e20e
mov dword [esp + 0x28], 0x5d6c05ba
cmp dword [esp + 0x1c], 0x5923
jge 0x43e298
push 0xac26e8
call fcn.004f967e
pop ecx
mov dword [esp + 0x28], 0x1b
jmp 0x43e30c
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jne 0x43e2f2
cmp dword [esp + 0x28], 0x19
jle 0x43e2a2
lea ecx, [esp + 0x534]
call fcn.0042d79d
lea eax, [esp + 0xb0]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0x398], xmm0
call fcn.00442d51
mov eax, dword [eax]
mov dword [esp + 0x2c], 0x2041
cmp dword [esp + 0x2c], 0x20b6
mov dword [esp + 0x14], eax
jle 0x43e616
mov eax, dword [ebp + 8]
lea esi, [esp + 0x334]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret