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

Disassembly:
sub esp, 0x4bc
mov eax, dword [0x5eef00]
xor eax, esp
mov dword [esp + 0x4b4], eax
mov eax, dword [esp + 0x4c8]
push ebx
push ebp
mov ebp, dword [esp + 0x4d4]
push esi
push edi
xor ebx, ebx
push 0x2c
lea edx, [esp + 0x50]
push ebx
push edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x118], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebx
call fcn.004b3a80
add esp, 0xc
mov edi, 1
push 4
push 0x4000
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x108], 0x15f90
mov dword [esp + 0x10c], ebx
call fcn.00477460
mov esi, eax
add esp, 8
cmp esi, ebx
mov dword [esp + 0xac], esi
je 0x4420c6
cmp dword [0x5f9bec], ebx
jge 0x4400c7
mov dword [0x5f9bec], edi
push 0x40
lea eax, [esp + 0x384]
push ebx
push eax
call fcn.004b3a80
mov eax, dword [0x6dae54]
add esp, 0xc
cmp eax, ebx
push ebx
push ebx
mov dword [ebp], ebx
push ebx
je 0x4400f5
mov ecx, dword [esp + 0x88]
push ecx
call eax
jmp 0x440102
mov edx, dword [esp + 0x88]
push edx
call fcn.00478b70
mov eax, dword [0x6dae4c]
add esp, 0x10
cmp eax, ebx
push 0x10000
push esi
je 0x440126
mov ecx, dword [esp + 0x84]
push ecx
call eax
mov edi, eax
mov dword [esp + 0x4c], edi
jmp 0x440139
mov edx, dword [esp + 0x84]
push edx
call fcn.00478bb0
mov edi, eax
mov dword [esp + 0x4c], eax
add esp, 0xc
push 0x6c
push ebx
push ebp
call fcn.004b3a80
or eax, 0xffffffff
add esp, 0xc
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov eax, esi
xor ecx, ecx
mov dl, 0x47
nop
cmp byte [eax], dl
jne 0x440170
cmp byte [eax + 0xbc], dl
je 0x4401f4
cmp byte [eax + 4], dl
jne 0x44017d
cmp byte [eax + 0xc4], dl
je 0x4401fb
add ecx, 1
add eax, 1
cmp ecx, 0xc0
jl 0x440160
cmp edi, 0x10000
sbb ecx, ecx
add edi, 3
not ecx
and ecx, dword [esp + 0x7c]
shr edi, 2
cmp dword [0x5f9bec], ebx
lea edx, [esi + edi*4]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edx
je 0x44174a
mov eax, dword [esi]
mov dword [esp + 0x88], eax
xor edx, edx
mov dh, byte [esp + 0x8a]
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
add ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 8
add ecx, edx
add ecx, eax
jmp 0x44174c
mov edx, 1
jmp 0x440200
mov edx, 2
cmp edx, 1
mov dword [ebp + 0x68], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x94], ebx
mov dword [esp + 0xbc], ebx
jne 0x440262
mov dword [ebp], 5
mov ecx, 0xbc
mov dword [esp + 0x388], ebx
jmp 0x4402c3
movzx edx, byte [eax + 0x182]
movzx ecx, byte [eax + 0x183]
movzx edi, byte [eax]
or ecx, edx
movzx edx, byte [eax + 0x181]
or ecx, edx
movzx edx, byte [eax + 0x180]
or ecx, edx
movzx edx, byte [eax + 1]
or edx, edi
movzx edi, byte [eax + 2]
or edx, edi
movzx edi, byte [eax + 3]
or edx, edi
or edx, ecx
mov dword [esp + 0xb8], ecx
jne 0x4404b5
mov dword [ebp], 4
mov edi, dword [esp + 0x40]
mov ecx, 0xc0
mov dword [esp + 0x388], 4
mov dword [esp + 0x380], eax
mov eax, edi
sub eax, ecx
add eax, esi
mov dword [esp + 0x384], ecx
mov dword [ebp + 0x64], ecx
cmp edi, 0x10000
sbb ecx, ecx
not ecx
and ecx, dword [esp + 0x7c]
lea edx, [esp + 0xc0]
push 4
push 0x8000
mov dword [esp + 0x3c0], esi
mov dword [esp + 0x398], eax
mov dword [esp + 0x394], ebx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x108], 0xdbba0
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x3bc], edx
mov dword [esp + 0x3b0], ebx
mov dword [esp + 0x3a0], ebx
mov dword [esp + 0x3a4], ebx
mov dword [esp + 0x3a8], ebx
mov dword [esp + 0x3ac], ebx
mov dword [esp + 0x3c4], 0xffffffff
call fcn.00477460
add esp, 8
cmp eax, ebx
mov dword [esp + 0x78], eax
je 0x44178a
mov edx, 0x10
mov ecx, eax
lea eax, [esp + 0x180]
mov edi, 0x2000
lea esi, [edx - 0xf]
jmp 0x440390
mov dword [eax + 0x1c], ecx
mov dword [eax + 8], 0xffffffff
mov dword [eax], 0xffffffff
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov dword [eax + 0xc], esi
mov dword [eax + 4], ebx
mov dword [eax + 0x18], esi
add ecx, edi
add eax, 0x20
sub edx, esi
jne 0x440390
push pe_nt_image_headers32
lea eax, [esp + 0x3c4]
push ebx
xor esi, esi
push eax
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
call fcn.004b3a80
add esp, 0xc
push 0x6c
lea ecx, [esp + 0x114]
push ebx
push ecx
call fcn.004b3a80
add esp, 0xc
lea edx, [esp + 0x180]
push edx
lea eax, [esp + 0x384]
push eax
call fcn.0043fbe0
add esp, 8
cmp eax, 0xffffffff
je 0x441353
nop
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
je 0x440457
cmp dword [esp + 0x18], ebx
je 0x440457
cmp dword [esp + 0x28], ebx
jne 0x440457
mov esi, dword [esp + 0x1c]
cmp esi, ebx
je 0x440457
cmp esi, dword [esp + 0x34]
jge 0x441353
cmp dword [esp + 0xbc], 0x61a8
jge 0x441353
add dword [esp + 0xbc], 1
cmp dword [esp + 0x84], ebx
jne 0x44068e
mov ecx, dword [esp + 0x190]
cmp ecx, ebx
je 0x44068e
mov esi, dword [esp + 0x19c]
movzx eax, byte [esi]
lea edx, [eax + 4]
cmp ecx, edx
jge 0x4404e6
cmp dword [esp + 0x18c], 3
jne 0x44132c
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 1
jmp 0x44132c
mov dword [ebp], 6
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 2]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
add ecx, edx
mov dword [esp + 0x94], ecx
jmp 0x4402af
movzx edi, byte [esi + eax + 2]
movzx edx, byte [esi + eax + 3]
lea esi, [esi + eax + 1]
shl edi, 8
add edi, edx
and edi, 0xfff
lea eax, [edi + eax + 4]
cmp ecx, eax
jge 0x440536
cmp edi, 0x3fd
jg 0x44051f
cmp dword [esp + 0x18c], 3
jne 0x44132c
xor ebx, ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x18c], 1
jmp 0x44132c
lea edx, [edi + 3]
call fcn.0043fea0
test eax, eax
jne 0x440559
mov dword [esp + 0x190], ebx
mov dword [esp + 0x18c], 1
jmp 0x44132c
movzx eax, byte [esi + 6]
add esi, 6
mov edx, 1
lea eax, [esp + eax + 0x3c0]
add esi, edx
cmp byte [eax], 0
je 0x440586
mov dword [esp + 0x190], ebx
mov dword [esp + 0x18c], edx
jmp 0x44132c
movzx ecx, byte [esi]
add esi, edx
sub edi, 9
mov byte [eax], dl
mov dword [esp + 0x40], ecx
jns 0x440598
xor edi, edi
sar edi, 2
mov ecx, edi
cmp ecx, ebx
jle 0x440607
mov edi, dword [esp + 0x90]
mov eax, edi
shl eax, 5
lea eax, [esp + eax + 0x1a4]
mov dword [esp + 0x30], ecx
mov cl, byte [esi + 1]
or cl, byte [esi]
je 0x4405f7
cmp edi, 0xf
jge 0x4405f7
movzx edx, byte [esi + 2]
movzx ecx, byte [esi + 3]
shl edx, 8
add edx, ecx
and edx, 0x1fff
mov dword [eax - 4], edx
mov edx, 1
mov dword [eax], 0xff
mov dword [eax + 8], edx
mov dword [eax + 4], 0xffffffff
mov dword [eax + 0xc], ebx
add edi, edx
add eax, 0x20
add esi, 4
sub dword [esp + 0x30], edx
jne 0x4405b8
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0x40]
mov esi, 1
mov edx, esi
add ecx, edx
xor eax, eax
cmp ecx, ebx
jle 0x440647
lea ebx, [ebx]
movzx edi, byte [esp + eax + 0x3c0]
add eax, esi
and edx, edi
cmp eax, ecx
jl 0x440620
cmp edx, ebx
jne 0x440647
mov dword [esp + 0x190], ebx
mov dword [esp + 0x18c], esi
jmp 0x44132c
mov eax, dword [esp + 0x90]
cmp eax, ebx
je 0x44144c
cmp eax, 0xa
jg 0x44144c
push pe_nt_image_headers32
lea edx, [esp + 0x3c4]
push ebx
push edx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x38], eax
call fcn.004b3a80
add esp, 0xc
cmp dword [esp + 0x3c], ebx
jne 0x440a79
cmp dword [esp + 0x90], ebx
mov dword [esp + 0x30], ebx
jle 0x44132c
lea eax, [esp + 0x1b0]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x3c], 0
jne 0x44132c
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
test eax, eax
je 0x440a57
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x4406e5
mov edx, dword [esp + 0x24]
cmp dword [edx - 0x10], ecx
jne 0x441461
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0xc]
movzx ebx, byte [esi]
lea edx, [ebx + 4]
cmp eax, edx
jge 0x440712
cmp dword [ecx - 4], 3
jne 0x440a57
mov dword [ecx], 0
mov dword [ecx - 4], 1
jmp 0x440a57
cmp byte [esi + ebx + 1], 2
lea esi, [esi + ebx + 1]
je 0x44072f
mov dword [ecx], 0
mov dword [ecx - 4], 1
jmp 0x440a57
mov edx, dword [ecx - 0x10]
movzx edi, byte [esi + 1]
mov dword [esp + 0x98], edx
movzx edx, byte [esi + 2]
shl edi, 8
add edi, edx
and edi, 0xfff
lea edx, [edi + ebx + 4]
cmp eax, edx
jge 0x44075e
cmp edi, 0x3fd
jg 0x440700
jmp 0x4406f6
lea edx, [edi + 3]
call fcn.0043fea0
test eax, eax
jne 0x440780
mov eax, dword [esp + 0x24]
mov dword [eax], 0
mov dword [eax - 4], 1
jmp 0x440a57
lea edi, [edi + ebx - 1]
test edi, edi
jle 0x440791
lea eax, [esi + edi]
mov dword [esp + 0x38], eax
jmp 0x440795
mov dword [esp + 0x38], esi
movzx eax, byte [esi + 6]
cmp byte [esp + eax + 0x3c0], 0
lea eax, [esp + eax + 0x3c0]
jne 0x44076a
movzx ecx, byte [esi + 7]
movzx edx, byte [esi + 0xb]
mov dword [esp + 0x40], ecx
movzx ecx, byte [esi + 0xa]
mov byte [eax], 1
movzx eax, byte [esi + 8]
shl ecx, 8
add ecx, edx
movzx edx, byte [esi + 9]
shl eax, 8
add eax, edx
and eax, 0x1fff
add esi, 0xc
and ecx, 0xfff
mov dword [esp + 0x3bc], eax
mov dword [ebp + 0x54], eax
mov eax, esi
add esi, ecx
cmp eax, esi
jae 0x44085d
mov edi, 1
movzx ecx, byte [eax]
movzx edx, byte [eax + edi]
add eax, edi
add eax, edi
cmp ecx, 0x88
jne 0x440857
movzx ecx, byte [eax]
movzx ebx, byte [eax + 1]
shl ecx, 8
add ecx, ebx
cmp ecx, 0xfff
jne 0x440857
movzx ecx, byte [eax + 2]
and ecx, 3
mov dword [ebp + 0x5c], ecx
movzx ecx, byte [eax + 3]
and cl, 3
mov byte [ebp + 0x63], cl
movzx ecx, byte [eax + 3]
shr cl, 2
and cl, 1
mov byte [ebp + 0x62], cl
movzx ecx, byte [eax + 3]
shr cl, 1
and cl, 1
mov byte [ebp + 0x60], cl
movzx ecx, byte [eax + 3]
shr cl, 1
and cl, 1
mov byte [ebp + 0x61], cl
mov dword [ebp + 0x58], edi
add eax, edx
cmp eax, esi
jb 0x4407f4
cmp esi, dword [esp + 0x38]
jae 0x440960
mov edi, dword [esp + 0x2c]
shl edi, 5
lea edi, [esp + edi + 0x1a0]
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
add esi, 1
movzx ebx, byte [esi + 3]
shl ecx, 8
add ecx, edx
movzx edx, byte [esi + 2]
add esi, 2
shl edx, 8
add edx, ebx
and edx, 0xfff
and ecx, 0x1fff
cmp eax, 4
lea esi, [esi + edx + 2]
jle 0x4408e2
cmp eax, 0xf
je 0x4408e2
cmp eax, 0x10
je 0x4408e2
cmp eax, 0x11
je 0x4408e2
cmp eax, 0x1b
je 0x4408e2
cmp eax, 0x80
je 0x4408e2
cmp eax, 0x81
jge 0x4408e2
cmp eax, 0x24
je 0x4408e2
cmp eax, 0x25
je 0x4408e2
cmp eax, 6
je 0x4408e2
xor edx, edx
jmp 0x4408e7
mov edx, 1
xor ebx, ebx
cmp dword [esp + 0x2c], 0xf
jge 0x440954
cmp edx, ebx
je 0x440954
cmp eax, 2
mov edx, 1
mov dword [edi + 4], eax
mov dword [edi], ecx
mov dword [edi + 0xc], edx
jle 0x440919
cmp eax, 0x10
je 0x440919
cmp eax, 0x1b
je 0x440919
cmp eax, 6
je 0x440919
xor ecx, ecx
jmp 0x44091b
mov ecx, edx
add dword [esp + 0x2c], edx
mov dword [edi + 0x18], ecx
add edi, 0x20
cmp eax, 2
jle 0x440950
cmp eax, 0x10
je 0x440950
cmp eax, 0x1b
je 0x440950
cmp eax, 0x80
je 0x440950
cmp eax, 6
je 0x440950
cmp eax, 0x24
je 0x440950
cmp eax, 0x25
je 0x440950
add dword [esp + 0x18], edx
jmp 0x440954
add dword [esp + 0x1c], edx
cmp esi, dword [esp + 0x38]
jb 0x440875
jmp 0x440962
xor ebx, ebx
cmp dword [esp + 0x18], ebx
mov esi, dword [esp + 0x24]
mov dword [esi], ebx
je 0x440992
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x440992
mov dword [esi - 4], ebx
mov dword [esp + 0x3c], 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
jmp 0x440a57
mov ecx, dword [esp + 0x40]
mov edx, 1
add ecx, edx
xor eax, eax
cmp ecx, ebx
jle 0x4409c4
movzx edi, byte [esp + eax + 0x3c0]
add eax, 1
and edx, edi
cmp eax, ecx
jl 0x4409a3
cmp edx, ebx
jne 0x4409c4
mov dword [esi - 4], 1
jmp 0x440a57
mov eax, dword [esp + 0xa0]
add eax, 1
cmp eax, 0x3e8
mov dword [esp + 0xa0], eax
jle 0x440a07
xor eax, eax
cmp dword [esp + 0x18], ebx
mov dword [esi - 4], ebx
sete al
mov dword [esp + 0x3c], 1
mov dword [esp + 0x18], eax
xor eax, eax
cmp dword [esp + 0x1c], ebx
sete al
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
jmp 0x440a57
push pe_nt_image_headers32
lea ecx, [esp + 0x3c4]
push ebx
mov dword [esi - 0x10], 0xffffffff
push ecx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x198], 1
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
call fcn.004b3a80
add esp, 0xc
mov eax, dword [esp + 0x30]
add dword [esp + 0x24], 0x20
add eax, 1
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x30], eax
jl 0x4406b4
jmp 0x44132c
cmp dword [esp + 0x2c], ebx
lea edx, [esp + 0x1a0]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], edx
jle 0x44132c
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x40], eax
je 0x441310
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x441310
cmp eax, 0xff
je 0x441482
cmp eax, 2
jle 0x440aca
cmp eax, 0x10
je 0x440aca
cmp eax, 0x1b
jne 0x440adc
cmp ebx, 0x800
jge 0x440adc
cmp dword [esi + 0xc], 3
jne 0x441310
cmp eax, 0xf
je 0x440ae6
cmp eax, 0x11
jne 0x440af2
cmp ebx, 0x1948
jl 0x441310
mov eax, dword [esi + 0x1c]
lea ecx, [ebx + 3]
sar ecx, 2
cmp dword [0x5f9bec], 0
lea edx, [eax + ecx*4]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], edx
je 0x440b40
mov ecx, dword [eax]
mov edx, ecx
mov dword [esp + 0x30], ecx
and ecx, 0xff00
shl edx, 0x10
add edx, ecx
xor ecx, ecx
mov ch, byte [esp + 0x32]
shl edx, 8
add edx, ecx
movzx ecx, byte [eax + 3]
add edx, ecx
jmp 0x440b42
mov edx, dword [eax]
add eax, 4
mov dword [esp + 0x50], eax
push 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], 0x20
call fcn.0043e110
mov edi, eax
add esp, 4
test edi, edi
jbe 0x4412db
push 0x10
lea esi, [esp + 0x4c]
call fcn.0043de80
add esp, 4
push 0x18
mov dword [esp + 0x28], eax
call fcn.0043de80
and eax, 0xff
lea ecx, [eax + 3]
add esp, 4
cmp dword [esp + 0xb8], ecx
jb 0x440ba8
mov edx, 0xfffffffd
sub edx, eax
add dword [esp + 0xb8], edx
xor esi, esi
push esi
push esi
push eax
lea eax, [esp + 0x54]
call fcn.0043e260
mov eax, edi
and eax, 0xf0
add esp, 0xc
cmp al, 0xe0
jne 0x440eca
push 0x20
lea eax, [esp + 0x4c]
call fcn.0043df90
mov ecx, dword [esp + 0x44]
add esp, 4
cmp ecx, 2
jle 0x440dad
cmp ecx, 0x80
je 0x440dad
cmp ecx, 0x1b
jne 0x440d22
and eax, 0xffffff00
cmp eax, 0x100
ja 0x440d92
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x1c], ecx
jge 0x441036
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
push eax
lea edx, [esp + 0x114]
push edx
lea eax, [esp + 0x50]
call fcn.0043f040
add esp, 8
cmp eax, 0xffffffff
je 0x440d09
mov edi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x124]
imul edi, dword [ebp + 0x14]
imul ebx, dword [esp + 0x128]
cmp ebx, edi
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x134]
movzx esi, ah
movzx edx, ch
jg 0x440c7c
cmp edx, esi
jg 0x440c7c
jne 0x440ce2
mov edx, ecx
and eax, 0xff
and edx, 0xff
cmp edx, eax
jle 0x440ce2
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x130]
mov dword [ebp + 0x18], edx
mov edx, dword [esp + 0x138]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x12c]
mov dword [ebp + 0x28], edx
mov edx, dword [esp + 0x120]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x13c]
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0x10], edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x144]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x140]
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], ecx
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 4], eax
mov eax, 1
add dword [esp + 0x1c], eax
add dword [esp + 0x20], eax
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], 1
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
cmp ecx, 0x24
je 0x440d5a
cmp ecx, 0x25
je 0x440d5a
cmp ecx, 6
je 0x440d5a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], esi
mov dword [eax + 4], esi
mov eax, 1
add dword [esp + 0x1c], eax
add dword [esp + 0x20], eax
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
and eax, 0xffffff00
cmp eax, 0x100
ja 0x440d92
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x1c], eax
jge 0x441036
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
push eax
lea ecx, [esp + 0x114]
push ecx
lea eax, [esp + 0x50]
call fcn.0043f360
jmp 0x440c2f
mov edx, dword [esp + 0x14]
mov ecx, edx
mov dword [edx + 0xc], 1
mov dword [ecx + 0x10], 0
mov esi, edx
jmp 0x441310
cmp eax, 0x1b3
jne 0x44102b
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x1c], eax
jge 0x440e9f
mov eax, dword [esp + 0x4c]
add eax, 0xffffffe0
test eax, eax
jle 0x440dd7
mov dword [esp + 0x4c], eax
jmp 0x440de4
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
add esp, 4
lea edi, [esp + 0x110]
lea eax, [esp + 0x48]
call fcn.0043e650
mov ebx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x24]
imul ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x124]
mov esi, dword [esp + 0x134]
mov ebp, edi
imul ebp, dword [esp + 0x128]
mov eax, esi
mov ecx, edx
sar eax, 4
sar ecx, 4
cmp ebp, ebx
jg 0x440e36
cmp eax, ecx
jg 0x440e36
jne 0x440e9b
mov ecx, esi
and edx, 0xf
and ecx, 0xf
cmp cl, dl
jge 0x440e9b
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x138]
mov dword [ebp + 0x18], edx
mov edx, dword [esp + 0x12c]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x120]
mov dword [ebp + 0x28], ecx
mov ecx, dword [esp + 0x13c]
mov dword [ebp + 0x1c], edx
mov edx, dword [esp + 0x14]
mov dword [ebp + 0x10], eax
mov eax, dword [edx]
mov edx, dword [esp + 0x144]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x140]
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], edx
jmp 0x440e9f
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov eax, 1
add dword [esp + 0x1c], eax
add dword [esp + 0x20], eax
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
mov edx, edi
and edx, 0xe0
cmp dl, 0xc0
jne 0x4410b5
mov eax, dword [esp + 0x40]
cmp eax, 3
je 0x440f6a
cmp eax, 4
je 0x440f6a
cmp eax, 0xf
je 0x440f6a
cmp eax, 0x11
jne 0x441036
cmp dword [esp + 0x18], esi
jne 0x441036
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
sar eax, 3
sub eax, dword [esp + 0x50]
add eax, ebx
lea edx, [eax + ecx - 1]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x70], edx
lea edx, [esp + 0x70]
call fcn.0043ff00
mov esi, ebp
lea edi, [esp + 0x48]
call fcn.0043f650
test eax, eax
jne 0x44102b
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0xc], eax
mov dword [ecx + 4], eax
mov eax, 1
add dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sar ecx, 3
sub ecx, edi
add ecx, ebx
lea eax, [ecx + edx - 1]
cmp eax, esi
mov dword [esp + 0x30], eax
jle 0x44102b
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
add esi, 0xfffffff4
mov ecx, esi
js 0x440fa2
mov eax, ebx
shr eax, cl
jmp 0x440fe6
neg ecx
mov edx, ebx
shl edx, cl
cmp dword [0x5f9bec], 0
je 0x440fdd
mov ecx, dword [edi]
mov eax, ecx
mov dword [esp + 0x88], ecx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
xor ecx, ecx
mov ch, byte [esp + 0x8a]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 3]
add eax, ecx
jmp 0x440fdf
mov eax, dword [edi]
lea ecx, [esi + 0x20]
shr eax, cl
or eax, edx
and eax, 0xfff
cmp eax, 0xfff
je 0x441048
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff8
test eax, eax
jle 0x441003
mov dword [esp + 0x4c], eax
jmp 0x441018
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x4c]
add esp, 4
mov eax, dword [esp + 0x30]
sub eax, 1
test eax, eax
mov dword [esp + 0x30], eax
jg 0x440f91
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], 1
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
cmp dword [esp + 0x18], 0
jne 0x44108a
cmp dword [esp + 0x40], 0xf
mov edx, dword [esp + 0x30]
mov dword [esp + 0x70], edx
jne 0x44107f
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x70]
call fcn.0043ff00
mov esi, ebp
lea ebx, [esp + 0x48]
call fcn.0043f4d0
jmp 0x44108a
mov eax, ebp
lea ecx, [esp + 0x48]
call fcn.0043f5a0
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov eax, 1
add dword [esp + 0x18], eax
add dword [esp + 0x20], eax
mov dword [ecx + 0x10], 0
mov esi, ecx
jmp 0x441310
and edi, 0xff
cmp edi, 0xbd
je 0x4410e3
cmp edi, 0xfd
je 0x4410e3
mov eax, dword [esp + 0x14]
xor ecx, ecx
add dword [esp + 0x20], 1
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov esi, eax
jmp 0x441310
push 0x20
lea eax, [esp + 0x4c]
call fcn.0043df90
add esp, 4
cmp eax, 0x7ffe8001
je 0x4411b3
cmp eax, 0x64582025
je 0x4411b3
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
sar edx, 3
sub edx, dword [esp + 0x50]
add edx, ebx
lea edi, [edx + eax - 1]
cmp edi, esi
jle 0x441160
mov ebx, 1
push 0x10
lea eax, [esp + 0x4c]
call fcn.0043df90
add esp, 4
cmp eax, 0xb77
je 0x441179
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff8
cmp eax, esi
jle 0x44114b
mov dword [esp + 0x4c], eax
jmp 0x44115a
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
add esp, 4
xor esi, esi
sub edi, ebx
cmp edi, esi
jg 0x441125
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], 0
mov esi, eax
jmp 0x441310
cmp dword [esp + 0x18], esi
jne 0x441193
push esi
mov eax, 0x80
mov edi, ebp
lea ecx, [esp + 0x4c]
call fcn.0043f750
add esp, 4
mov eax, dword [esp + 0x14]
add dword [esp + 0x18], ebx
add dword [esp + 0x20], ebx
mov dword [eax + 0xc], esi
mov dword [eax + 4], esi
mov dword [eax + 0x10], 0
mov esi, eax
jmp 0x441310
mov ecx, dword [esp + 0x28]
cmp ecx, esi
je 0x4411c2
sub ecx, 1
mov dword [esp + 0x28], ecx
cmp eax, 0x7ffe8001
jne 0x441214
cmp ecx, esi
jne 0x4412c4
cmp dword [esp + 0x18], esi
jne 0x4412a5
push esi
mov eax, 0x88
mov edi, ebp
lea ecx, [esp + 0x4c]
call fcn.0043f750
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x84], ecx
mov ecx, 1
add esp, 4
add dword [esp + 0x20], ecx
mov dword [esp + 0x28], 0x14
mov dword [esp + 0x18], ecx
jmp 0x4412c9
cmp eax, 0x64582025
jne 0x4412a1
cmp ecx, esi
je 0x4412a5
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0x38]
jne 0x4412a1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
sar eax, 3
sub eax, dword [esp + 0x50]
xor ebx, ebx
add eax, dword [ecx + 0x10]
mov dword [ebp + 0x40], 0x21
lea edi, [eax + edx - 1]
test edi, edi
jle 0x441295
jmp 0x441260
push 8
lea esi, [esp + 0x4c]
call fcn.0043de80
shl ebx, 8
add ebx, eax
add esp, 4
cmp ebx, 0x41a29547
je 0x44128e
sub edi, 1
test edi, edi
jg 0x441260
mov dword [esp + 0x28], 0
xor esi, esi
jmp 0x4412a5
mov dword [ebp + 0x40], 0x22
mov dword [esp + 0x28], 0
xor esi, esi
jmp 0x4412a5
cmp ecx, esi
jne 0x4412c4
cmp dword [esp + 0x80], 0xffffffff
je 0x4412c4
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], esi
mov dword [eax + 4], esi
mov dword [eax + 0x10], 0
mov esi, eax
jmp 0x441310
mov ecx, 1
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov esi, eax
jmp 0x441310
mov eax, dword [esp + 0x40]
cmp eax, 4
jle 0x441302
cmp eax, 0x10
je 0x441302
cmp eax, 0x1b
je 0x441302
cmp eax, 0xf
je 0x441302
xor eax, eax
add dword [esp + 0x20], 1
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
jmp 0x441310
mov dword [esi + 0xc], 1
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x38]
add eax, 1
add esi, 0x20
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], esi
jl 0x440a92
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x384]
push ecx
call fcn.0043fbe0
add esp, 8
cmp eax, 0xffffffff
jne 0x440420
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp dword [esp + 0x38c], ebx
mov edx, dword [esp + 0x18]
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x3c], edx
mov dword [esp + 0x3a8], 1
jne 0x44152d
mov eax, dword [esp + 0x380]
sub eax, dword [esp + 0x3b8]
cdq
mov esi, eax
add esi, dword [esp + 0x398]
mov edi, edx
adc edi, dword [esp + 0x39c]
add esi, 1
adc edi, ebx
js 0x4413fb
jg 0x4413a3
cmp esi, ebx
jbe 0x4413fb
mov eax, dword [esp + 0x3a0]
sub eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x3a4]
sbb ecx, dword [esp + 0xcc]
add eax, dword [esp + 0xd0]
mov edx, dword [esp + 0x4d4]
adc ecx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0x4d4]
push edx
push ecx
push eax
call fcn.004b3e20
push edi
push esi
push edx
push eax
call fcn.004b82f0
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
mov ecx, dword [esp + 0x384]
mov eax, ecx
imul eax, eax, 0x3e80
cmp ebx, dword [esp + 0x4d4]
jl 0x44142f
jg 0x44141e
cmp eax, dword [esp + 0x4d0]
jbe 0x44142f
cmp ecx, ebx
jle 0x44142f
mov eax, dword [esp + 0x4d0]
cdq
idiv ecx
imul eax, ecx
mov ecx, dword [0x6dae54]
neg eax
cmp ecx, ebx
cdq
push 2
push edx
push eax
je 0x4414a3
mov edi, dword [esp + 0x88]
push edi
call ecx
jmp 0x4414b7
mov edx, dword [esp + 0x78]
push edx
mov dword [ebp], ebx
call fcn.00477540
add esp, 4
jmp 0x4420b6
mov ecx, dword [esp + 0x78]
push ecx
mov dword [ebp], 7
call fcn.00477540
mov edx, dword [esp + 0xb0]
add esp, 4
push edx
jmp 0x4420be
mov eax, dword [esp + 0x78]
push eax
mov dword [ebp], 7
call fcn.00477540
mov ecx, dword [esp + 0xb0]
add esp, 4
push ecx
jmp 0x4420be
mov eax, dword [esp + 0x88]
push eax
call fcn.00478b70
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x3c8]
mov eax, dword [0x6dae4c]
add esp, 0x10
cmp eax, ebx
push 0x10000
push esi
push edi
je 0x4414d5
call eax
jmp 0x4414da
call fcn.00478bb0
add esp, 0xc
cmp eax, 0x10000
jae 0x4414eb
mov dword [esp + 0x3b0], ebx
sub eax, dword [esp + 0x384]
mov dword [esp + 0x380], esi
add eax, esi
mov dword [esp + 0x390], eax
jmp 0x441510
lea ecx, [esp + 0x180]
push ecx
lea edx, [esp + 0x384]
push edx
call fcn.0043fbe0
add esp, 8
cmp eax, 0xffffffff
jne 0x441510
mov eax, dword [esp + 0x3a0]
sub eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x3a4]
sbb ecx, dword [esp + 0xcc]
add dword [esp + 0xd0], eax
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
adc dword [esp + 0xd4], ecx
sub eax, dword [esp + 0xe0]
sbb esi, dword [esp + 0xe4]
cmp dword [esp + 0x1c], ebx
mov dword [esp + 0x88], eax
jne 0x441585
mov eax, dword [ebp + 0x44]
jmp 0x441591
mov ecx, dword [ebp + 0x1c]
cmp ecx, ebx
je 0x4415f5
mov eax, dword [ebp + 0x44]
add eax, ecx
cdq
cmp edx, ebx
mov dword [esp + 0xb4], edx
mov edi, eax
jl 0x4415f5
jg 0x4415a5
cmp edi, ebx
jbe 0x4415f5
cmp dword [esp + 0x384], ebx
jle 0x4415f5
mov edx, dword [esp + 0x4d4]
mov eax, dword [esp + 0x4d0]
push 0
push 0x7e57c00
push edx
push eax
call fcn.004b3e20
mov ecx, dword [esp + 0xb4]
push ecx
push edi
push edx
push eax
call fcn.004b82f0
mov ecx, eax
mov eax, dword [esp + 0x384]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.004b82f0
mov edi, eax
mov ebx, edx
jmp 0x4415fe
mov edi, dword [esp + 0x88]
mov ebx, esi
cmp dword [ebp], 6
jne 0x441667
mov edx, dword [esp + 0x88]
or edx, esi
jne 0x441667
mov eax, dword [esp + 0x380]
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
shl edx, 8
add ecx, edx
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, eax
xor eax, eax
xor edx, edx
sub ecx, dword [esp + 0x94]
sbb eax, edx
test eax, eax
jg 0x441650
jl 0x44164b
test ecx, ecx
jae 0x441650
add ecx, edx
adc eax, 1
push 0
push 0x12c
push eax
push ecx
call fcn.004b82f0
mov dword [esp + 0x88], eax
mov esi, edx
mov eax, edi
mov edx, ebx
mov cl, 2
call fcn.0051d0b0
cmp edx, esi
jg 0x4416a4
jl 0x441681
cmp eax, dword [esp + 0x88]
jae 0x4416a4
push 0
push 0xa
push ebx
push edi
call fcn.004b3e20
cmp esi, edx
jg 0x4416a4
jl 0x44169b
cmp dword [esp + 0x88], eax
jae 0x4416a4
mov edi, dword [esp + 0x88]
jmp 0x4416e9
cmp ebx, dword [esp + 0xd4]
jg 0x4416e7
jl 0x4416b8
cmp edi, dword [esp + 0xd0]
jae 0x4416e7
push 0
push 0xa
push ebx
push edi
call fcn.004b3e20
cmp dword [esp + 0xd4], edx
jg 0x4416e7
jl 0x4416d7
cmp dword [esp + 0xd0], eax
jae 0x4416e7
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
jmp 0x4416e9
mov esi, ebx
xor ebx, ebx
push ebx
push 0x5a
push esi
push edi
call fcn.004b82f0
mov ecx, dword [esp + 0x10c]
mov dword [ecx], eax
mov eax, edi
or eax, esi
mov dword [ecx + 4], edx
je 0x441735
mov ecx, dword [esp + 0x4d4]
mov edx, dword [esp + 0x4d0]
push ebx
push 0xafc80
push ecx
push edx
call fcn.004b3e20
push esi
push edi
push edx
push eax
call fcn.004b82f0
cmp eax, 0x2faf080
mov dword [ebp + 4], eax
jle 0x441738
mov dword [ebp + 4], ebx
mov eax, dword [esp + 0x78]
push eax
call fcn.00477540
add esp, 4
jmp 0x4420b6
mov ecx, dword [esi]
lea edx, [esi + 4]
push 1
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0x20
mov dword [esp + 0x54], edx
mov dword [esp + 0x74], ebx
call fcn.0043e110
add esp, 4
cmp eax, 0x1b3
jne 0x441790
mov edi, ebp
lea eax, [esp + 0x48]
mov dword [ebp], 1
call fcn.0043e650
push esi
jmp 0x4420be
cmp eax, 1
jne 0x4417b2
push 0x10000
push ebp
lea eax, [esp + 0x50]
call fcn.0043f360
push esi
call fcn.00477540
add esp, 0xc
jmp 0x4420c6
cmp eax, 0x1ba
je 0x4417d2
lea eax, [esp + 0x48]
call fcn.0043e410
cmp eax, 0x1ba
je 0x4417d2
mov dword [ebp], ebx
push esi
jmp 0x4420be
cmp eax, 0x1ba
mov ecx, dword [esp + 0x60]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x64], ebx
jne 0x441c96
mov edi, dword [esp + 0x44]
cmp dword [edi + 0x64], 0
jne 0x441814
cmp dword [esp + 0x9c], 0
jl 0x441814
jg 0x441807
cmp dword [esp + 0x98], 0
jbe 0x441814
mov edx, dword [esp + 0x98]
sub edx, dword [edi + 0x68]
mov dword [edi + 0x64], edx
cmp dword [esp + 0x94], 0
je 0x44185b
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x54]
sar eax, 2
lea eax, [eax*4 - 8]
cdq
add eax, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov ecx, eax
or ecx, edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
je 0x44185b
mov dword [edi + 8], eax
mov dword [esp + 0x94], 0
push 4
lea eax, [esp + 0x4c]
call fcn.0043df90
add esp, 4
cmp eax, 2
jne 0x4418aa
mov eax, dword [esp + 0x4c]
add eax, 0xfffffffc
test eax, eax
jle 0x44188d
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], 1
mov dword [edi], 2
jmp 0x4418db
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
add esp, 4
mov dword [esp + 0x2c], 1
mov dword [edi], 2
jmp 0x4418db
cmp eax, 4
jb 0x4418db
mov eax, dword [esp + 0x4c]
add eax, 0xfffffffe
test eax, eax
jle 0x4418c0
mov dword [esp + 0x4c], eax
jmp 0x4418cd
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
add esp, 4
mov dword [esp + 0x2c], 2
mov dword [edi], 3
push 4
lea esi, [esp + 0x4c]
call fcn.0043de80
add esp, 4
mov ebp, eax
push 0x20
shr ebp, 1
call fcn.0043de80
mov edx, eax
shr edx, 2
shr eax, 1
add esp, 4
and edx, 0x3fff8000
and eax, 0x7fff
xor ecx, ecx
mov edi, edx
xor ebx, ebx
add edi, eax
push ecx
adc ebx, ecx
push 0x40000000
xor eax, eax
push eax
push ebp
call fcn.004b3e20
add edi, eax
adc ebx, edx
cmp dword [esp + 0x2c], 2
jne 0x441937
push 9
call fcn.0043de80
add esp, 4
mov edx, dword [esp + 0x30]
push edx
push ebx
push edi
lea esi, [esp + 0xcc]
call fcn.0043f970
add esp, 0xc
push 0x18
lea esi, [esp + 0x4c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0x34], 0
call fcn.0043de80
mov ebp, dword [esp + 0x48]
add esp, 4
cmp dword [esp + 0x3c], 0
mov ebx, 1
je 0x4419ad
shr eax, 1
and eax, 0x3fffff
imul eax, eax, 0x190
cmp dword [esp + 0x38], 0x2710
mov dword [ebp + 4], eax
jl 0x4419ad
mov dword [esp + 0x3c], 0
mov dword [esp + 0x18], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0xc], ebx
add dword [esp + 0x38], ebx
cmp dword [esp + 0x2c], 2
jne 0x4419f2
push 9
lea esi, [esp + 0x4c]
call fcn.0043de80
add esp, 4
and eax, 7
jle 0x4419f2
mov edi, eax
lea ecx, [ecx]
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff8
test eax, eax
jle 0x4419e1
mov dword [esp + 0x4c], eax
jmp 0x4419ee
push eax
lea esi, [esp + 0x4c]
call fcn.0043e010
add esp, 4
sub edi, ebx
jne 0x4419d0
push 0
lea eax, [esp + 0x4c]
call fcn.0043e110
mov ebx, eax
add esp, 4
cmp ebx, 0x1bb
jne 0x441a7e
push 0x10
lea esi, [esp + 0x4c]
call fcn.0043de80
add esp, 4
cmp dword [esp + 0x3c], 0
mov edi, eax
je 0x441a5d
push 0x20
call fcn.0043de80
shr eax, 2
and eax, 0x3f
add esp, 4
mov dword [esp + 0x18], eax
mov dword [ebp + 0x3c], eax
push 0x10
mov eax, esi
call fcn.0043df90
shr eax, 8
and eax, 0x1f
add esp, 4
cmp edi, 4
mov dword [ebp + 0xc], eax
jb 0x441a55
sub edi, 4
mov dword [esp + 0x3c], 0
push 0
push 0
push edi
lea eax, [esp + 0x54]
call fcn.0043e260
add esp, 0xc
push 0
lea eax, [esp + 0x4c]
call fcn.0043e110
add esp, 4
mov ebx, eax
cmp ebx, 0x1bc
jb 0x441c7b
lea ebx, [ebx]
push 0x10
lea esi, [esp + 0x4c]
call fcn.0043de80
add esp, 4
cmp dword [esp + 0x80], 0
mov ebp, eax
mov dword [esp + 0x24], ebp
je 0x441b10
mov eax, ebx
and eax, 0xf0
cmp al, 0xe0
jne 0x441b10
mov ecx, dword [esp + 0x2c]
push ecx
lea ebx, [esp + 0x28]
mov eax, esi
call fcn.0043e550
add esp, 4
push 0x20
call fcn.0043de80
mov ebp, dword [esp + 0x28]
add esp, 4
cmp ebp, 4
jb 0x441ae2
sub ebp, 4
cmp eax, 0x1b3
jne 0x441c1f
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x48]
call fcn.0043e650
cmp ebp, eax
jb 0x441b00
sub ebp, eax
mov dword [esp + 0x80], 0
jmp 0x441c1f
mov edi, dword [esp + 0x34]
test edi, edi
jne 0x441b22
cmp dword [esp + 0x28], edi
je 0x441c1f
mov edx, ebx
and edx, 0xe0
cmp dl, 0xc0
jne 0x441cf2
mov eax, dword [esp + 0x2c]
and ebx, 0xff
push eax
mov dword [esp + 0xb4], ebx
lea ebx, [esp + 0x28]
lea eax, [esp + 0x4c]
call fcn.0043e550
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
add edx, 0xffffffe0
xor edi, edi
add esp, 4
cmp edx, edi
mov ecx, edx
jl 0x441b70
mov eax, dword [esp + 0x48]
shr eax, cl
jmp 0x441bb5
mov esi, dword [esp + 0x48]
neg ecx
shl esi, cl
cmp dword [0x5f9bec], edi
je 0x441bac
mov ecx, dword [ebx]
mov eax, ecx
mov dword [esp + 0x88], ecx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
movzx ecx, byte [ebx + 3]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov ch, byte [esp + 0x8a]
add eax, ecx
jmp 0x441bae
mov eax, dword [ebx]
lea ecx, [edx + 0x20]
shr eax, cl
or eax, esi
and eax, 0xfff00000
cmp eax, 0xfff00000
jne 0x441c1b
mov ecx, dword [esp + 0x78]
xor eax, eax
cmp ecx, edi
jle 0x441be8
jmp 0x441bd0
movzx edx, byte [esp + eax + 0x380]
cmp dword [esp + 0xb0], edx
je 0x441be8
add eax, 1
cmp eax, ecx
jl 0x441bd0
cmp eax, ecx
jne 0x441c1b
cmp ecx, 0x40
jge 0x441c13
mov dl, byte [esp + 0xb0]
add ecx, 1
mov byte [esp + eax + 0x380], dl
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x48]
call fcn.0043f5a0
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], edi
mov ebp, dword [esp + 0x24]
cmp dword [esp + 0x4d4], 0
jg 0x441ee7
jl 0x441c40
cmp dword [esp + 0x4d0], 0x200000
ja 0x441ee7
mov dword [esp + 0x84], 0
push 0
push 0
push ebp
lea eax, [esp + 0x54]
call fcn.0043e260
add esp, 0xc
test eax, eax
jne 0x441c7f
push eax
lea eax, [esp + 0x4c]
call fcn.0043e110
add esp, 4
mov ebx, eax
cmp ebx, 0x1bc
jae 0x441a90
test ebx, ebx
jne 0x441c8a
lea eax, [esp + 0x48]
call fcn.0043e410
mov ebx, eax
cmp ebx, 0x1ba
je 0x4417e7
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
cmp dword [eax + 4], ecx
jge 0x441ca5
mov dword [eax + 4], ecx
mov eax, dword [eax + 4]
cmp eax, 8
jl 0x441fd3
cmp eax, 0x2faf080
jge 0x441fd3
mov ecx, dword [esp + 0x4d0]
sar eax, 3
cdq
push 0
mov esi, eax
mov eax, dword [esp + 0x4d8]
push 0x15f90
push eax
push ecx
mov edi, edx
call fcn.004b3e20
push edi
push esi
push edx
push eax
call fcn.004b82f0
mov esi, eax
mov edi, edx
jmp 0x441fd7
cmp dword [esp + 0x2c], 2
jne 0x441c1f
cmp bl, 0xbd
jne 0x441c1f
push 2
lea ebx, [esp + 0x28]
lea eax, [esp + 0x4c]
mov dword [esp + 0x8c], 0
call fcn.0043e550
add esp, 4
push 0x20
lea esi, [esp + 0x4c]
call fcn.0043de80
mov ebp, dword [esp + 0x28]
add esp, 4
cmp ebp, 4
mov esi, eax
jb 0x441d3f
sub ebp, 4
mov ebx, esi
shr ebx, 0x18
lea eax, [ebx - 0x80]
cmp eax, 0x2f
ja 0x441e71
test edi, edi
je 0x441e71
push 0x10
lea eax, [esp + 0x4c]
call fcn.0043df90
mov edi, eax
movzx eax, si
add esp, 4
cmp ebp, eax
jb 0x441c1f
cmp dword [esp + 0x28], 0
jne 0x441c1f
test eax, eax
je 0x441d8f
mov ecx, ebx
and ecx, 0xf8
cmp cl, 0x88
je 0x441da7
cmp ebx, 0x80
jne 0x441c1f
cmp edi, 0xb77
jne 0x441c1f
test eax, eax
je 0x441dae
sub eax, 1
push 0
push 0
sub ebp, eax
push eax
lea eax, [esp + 0x54]
call fcn.0043e260
mov esi, dword [esp + 0x84]
add esp, 0xc
xor eax, eax
test esi, esi
jle 0x441de3
mov edi, edi
movzx edx, byte [esp + eax + 0x380]
cmp ebx, edx
je 0x441de3
add eax, 1
cmp eax, esi
jl 0x441dd0
cmp eax, esi
jne 0x441c1f
cmp esi, 0x40
jge 0x441e62
mov byte [esp + eax + 0x380], bl
push edi
mov edi, dword [esp + 0x48]
add esi, 1
mov eax, ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x7c], esi
call fcn.0043f750
add esp, 4
cmp ebp, eax
jb 0x441e17
sub ebp, eax
mov eax, dword [edi + 0x40]
cmp eax, 0x20
jne 0x441e27
mov dword [esp + 0x28], 0x14
cmp eax, 0x10
je 0x441e31
cmp eax, 0x40
jne 0x441e40
mov eax, 1
mov dword [esp + 0x28], 0
jmp 0x441e47
mov eax, dword [esp + 0x88]
cmp esi, dword [esp + 0x18]
jge 0x441e55
test eax, eax
je 0x441c1f
mov dword [esp + 0x34], 0
jmp 0x441c1f
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
jmp 0x441c1f
cmp ebx, 0x88
jne 0x441c1f
cmp dword [esp + 0x28], 0
je 0x441c1f
xor edi, edi
test ebp, ebp
je 0x441ec9
mov ebx, dword [esp + 0x44]
push 8
lea esi, [esp + 0x4c]
call fcn.0043de80
shl edi, 8
add edi, eax
add esp, 4
cmp edi, 0x64582025
jne 0x441eb6
mov dword [ebx + 0x40], 0x21
jmp 0x441ec4
cmp dword [ebx + 0x40], 0x21
jne 0x441ec4
cmp edi, 0x41a29547
je 0x441ed3
sub ebp, 1
jne 0x441e92
sub dword [esp + 0x28], 1
jmp 0x441c1f
mov dword [ebx + 0x40], 0x22
mov dword [esp + 0x28], 0
jmp 0x441c1f
cmp dword [esp + 0x84], 0
je 0x441c4b
cmp dword [esp + 0x3c], 0
jne 0x441f14
cmp dword [esp + 0x80], 0
jne 0x441f14
cmp dword [esp + 0x34], 0
jne 0x441f14
cmp dword [esp + 0x28], 0
je 0x441f22
cmp dword [esp + 0x38], 0x186a0
jle 0x441c4b
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x6c]
cdq
mov esi, eax
add esi, dword [esp + 0x60]
mov edi, edx
adc edi, dword [esp + 0x64]
add esi, 1
adc edi, 0
js 0x441f9d
jg 0x441f45
test esi, esi
jbe 0x441f9d
mov eax, dword [esp + 0xd0]
sub eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xd4]
sbb ecx, dword [esp + 0xcc]
add eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x4d4]
adc ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0x4d4]
push edx
push ecx
push eax
call fcn.004b3e20
push edi
push esi
push edx
push eax
call fcn.004b82f0
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
push 1
push 0
push 0xf4240
lea eax, [esp + 0x54]
call fcn.0043e260
add esp, 0xc
lea eax, [esp + 0x48]
call fcn.0043e410
mov dword [esp + 0x30], 1
mov dword [esp + 0x84], 0
jmp 0x441c6d
xor esi, esi
xor edi, edi
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xa4]
sbb ecx, dword [esp + 0xcc]
add dword [esp + 0xd0], eax
mov ebp, dword [esp + 0xe8]
mov ebx, dword [esp + 0xec]
adc dword [esp + 0xd4], ecx
sub ebp, dword [esp + 0xe0]
mov edx, esi
sbb ebx, dword [esp + 0xe4]
or edx, edi
jne 0x442027
mov esi, ebp
mov edi, ebx
push 0
push 3
push edi
push esi
call fcn.004b3e20
mov cl, 2
call fcn.0051d0b0
cmp edx, ebx
jg 0x44205e
jl 0x442043
cmp eax, ebp
jae 0x44205e
push 0
push 0xa
push edi
push esi
call fcn.004b3e20
cmp ebx, edx
jg 0x44205e
jl 0x442058
cmp ebp, eax
jae 0x44205e
mov esi, ebp
mov edi, ebx
jmp 0x44209f
cmp edi, dword [esp + 0xd4]
jg 0x44209f
jl 0x442072
cmp esi, dword [esp + 0xd0]
jae 0x44209f
push 0
push 0xa
push edi
push esi
call fcn.004b3e20
cmp dword [esp + 0xd4], edx
jg 0x44209f
jl 0x442091
cmp dword [esp + 0xd0], eax
jae 0x44209f
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
push 0
push 0x5a
push edi
push esi
call fcn.004b82f0
mov ecx, dword [esp + 0x10c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0xac]
push eax
call fcn.00477540
add esp, 4
mov ecx, dword [esp + 0x4c4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b2f95
add esp, 0x4bc
ret