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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov edx, dword [ebp + 0x30]
xor ecx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x70], edi
test byte [esi + 0x1c], 0x80
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x48], eax
movsx eax, word [esi + 0x22]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x60], ecx
mov byte [esp + 0x17], cl
mov dword [esp + 0x84], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], eax
jne 0x48036d
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x74], 1
jmp 0x480382
mov ecx, esi
call fcn.00474bb9
mov dword [esp + 0x2c], eax
xor ecx, ecx
movzx eax, word [eax + 0x32]
mov dword [esp + 0x74], eax
test dword [esi + 0x1c], 0x800
mov dl, byte [ebp + 0x20]
mov dword [esp + 0x54], edx
je 0x4805c8
mov eax, ecx
mov dword [esp + 0x38], ecx
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x44], edx
jle 0x48057d
xor eax, eax
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [esp + 0x50], ecx
mov esi, dword [ecx + 4]
and esi, 0xf
mov dword [esp + 0x40], esi
je 0x480559
mov eax, dword [esp + 0x10]
movsx eax, word [eax + 0x20]
cmp edx, eax
je 0x480559
movzx eax, word [ecx + 0xe]
and eax, 0x60
je 0x4803fd
cmp dword [esp + 0x28], 0
jne 0x4803fd
inc dword [esp + 0x3c]
jmp 0x480559
cmp dword [ebp + 0x2c], 0
mov edi, dword [esp + 0x70]
je 0x48041c
mov ebx, dword [ebp + 0x2c]
cmp dword [ebx + edx*4], 0
mov ebx, dword [esp + 0x34]
jge 0x48041c
test eax, eax
je 0x480559
cmp byte [esp + 0x54], 0xb
mov ebx, dword [esp + 0x34]
je 0x480455
mov ebx, dword [esp + 0x54]
movzx esi, bl
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], esi
cmp esi, 5
jne 0x480463
cmp dword [esp + 0x28], 0
jne 0x48044a
xor eax, eax
cmp word [ecx + 0xc], ax
jne 0x480472
push 2
pop eax
mov esi, eax
mov dword [esp + 0x40], esi
jmp 0x480472
cmp esi, 0xb
jne 0x480436
push 2
pop ecx
mov esi, ecx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x28], 0
je 0x480472
test eax, eax
je 0x480559
mov ecx, dword [esp + 0x10]
call fcn.00474bf1
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add ecx, eax
mov eax, esi
mov dword [esp + 0x24], ecx
sub eax, 1
je 0x480509
sub eax, 1
je 0x4804fb
sub eax, 1
je 0x480509
push 2
pop edx
sub eax, edx
je 0x4804b7
xor eax, eax
push eax
push dword [ebp + 0x24]
push ecx
push 0x32
pop edx
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
jmp 0x480555
xor eax, eax
push eax
push eax
push ecx
push 0x33
pop edx
mov ecx, ebx
call fcn.004591cc
mov ecx, dword [esp + 0x1c]
add esp, 0xc
inc dword [esp + 0x38]
mov esi, eax
mov edx, dword [esp + 0x50]
push dword [esp + 0x24]
call fcn.004746b0
mov edx, eax
mov ecx, edi
call fcn.0046dc3d
pop ecx
mov edx, esi
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x480555
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x50]
push dword [eax]
mov eax, dword [esp + 0x14]
push dword [eax]
push str._s._s
push dword [esp + 0x54]
call fcn.00440d10
push dword [esp + 0x34]
mov ecx, ebx
mov esi, eax
push dword [esp + 0x54]
push 0x513
push 0x45
pop edx
call fcn.004591cc
add esp, 0x1c
mov edx, esi
mov ecx, ebx
push 0xfffffffffffffffa
call fcn.004599ea
pop ecx
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0045974e
mov edx, dword [esp + 0x44]
add dword [esp + 0x18], 0x10
inc edx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], edx
cmp edx, dword [esp + 0x20]
jl 0x4803bb
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x3c], 0
jne 0x480588
test ecx, ecx
je 0x4805c4
test eax, eax
jne 0x4805c4
inc eax
mov dword [esp + 0x28], eax
push 0
pop edx
test ecx, ecx
jle 0x4803a6
test byte [esi + 0x1c], 0x60
je 0x4803a6
mov edx, dword [ebp + 0x14]
mov ecx, edi
push esi
lea edx, [edx + 1]
call fcn.0047ef84
mov eax, dword [esp + 0x2c]
xor edx, edx
pop ecx
mov ecx, dword [esp + 0x38]
jmp 0x4803a6
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x480717
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
and eax, 0x200
or eax, 0
jne 0x480717
mov eax, dword [ebp + 0x14]
cmp dl, 0xb
not eax
mov dword [edi + 0x34], eax
push 2
movzx eax, dl
pop esi
cmovne esi, eax
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [ecx], eax
jle 0x48070c
lea eax, [ecx + 0xc]
mov dword [esp + 0x18], eax
mov edx, dword [ebp + 0x2c]
mov ecx, dword [eax - 4]
mov dword [esp + 0x80], ecx
test edx, edx
je 0x480639
movzx eax, byte [ebp + 0x1c]
push eax
call fcn.00480284
pop ecx
test eax, eax
je 0x4806ec
cmp byte [esp + 0x17], 0
jne 0x480656
mov eax, dword [ebp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x10]
inc eax
push eax
call fcn.0047ee11
pop ecx
mov byte [esp + 0x17], 1
dec dword [edi + 0x38]
xor eax, eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x48067e
mov ecx, dword [esp + 0x48]
push eax
push eax
call fcn.0046a101
pop ecx
pop ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
cmp byte [edx + 0x57], 0
jne 0x480699
push 0x10
push ecx
push eax
push edi
call fcn.0046df66
add esp, 0x10
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4806aa
mov ecx, dword [esp + 0x48]
call fcn.00469f9d
push 4
pop eax
cmp esi, eax
jne 0x4806bd
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00459225
jmp 0x4806e1
push 2
pop eax
cmp esi, 5
mov edx, 0x113
push 3
cmove esi, eax
mov ecx, edi
xor eax, eax
push eax
mov eax, dword [esp + 0x20]
push dword [eax]
push esi
call fcn.00479476
add esp, 0x10
mov edx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.00459579
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
inc edx
mov eax, dword [esp + 0x18]
add eax, 0x14
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
cmp edx, dword [ecx]
jl 0x480615
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [edi + 0x34], ecx
jmp 0x480719
xor ecx, ecx
mov edx, dword [ebp + 0x30]
mov eax, dword [esi + 8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], eax
test edx, edx
je 0x480757
cmp dword [edx], ecx
jne 0x48077c
mov al, byte [edx + 0x14]
xor edx, edx
test al, al
cmovne edx, dword [esp + 0x7c]
setne al
mov dword [ebp + 0x30], edx
lea eax, [eax*2 + 4]
mov dword [esp + 0x54], eax
xor edx, edx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov eax, ecx
and eax, 0x6000
or eax, edx
jne 0x48085a
mov dword [esp + 0x64], edx
mov dword [esp + 0x28], edx
jmp 0x4808d4
test eax, eax
je 0x480757
mov esi, ecx
mov eax, dword [eax + 0x14]
inc esi
test eax, eax
jne 0x480782
imul eax, esi, 0xa
push ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], 1
mov dword [esp + 0x48], esi
push eax
call fcn.0043f143
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x481400
mov edx, dword [ebp + 0x30]
lea eax, [ecx + esi*8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
xor eax, eax
mov edi, dword [esp + 0x18]
mov esi, eax
mov dword [edx + 0x18], ecx
cmp dword [edx], eax
je 0x480810
cmp dword [edx + 0x1c], 0
je 0x480809
mov ecx, eax
mov eax, dword [ebx + 8]
jmp 0x4807e7
cmp eax, dword [edx + 0x1c]
je 0x4807eb
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x4807de
cmp byte [ecx + edi], 0
jne 0x480807
mov ebx, dword [esp + 0x38]
mov byte [ecx + edi], 1
mov dword [ebx + esi*8], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + esi*8 + 4], ecx
inc esi
xor eax, eax
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4807cd
mov eax, dword [esp + 0x10]
xor edx, edx
mov ebx, dword [esp + 0x34]
mov ecx, edx
mov edi, dword [esp + 0x70]
mov eax, dword [eax + 8]
test eax, eax
je 0x480851
mov edx, dword [esp + 0x38]
lea edx, [edx + esi*8]
mov esi, dword [esp + 0x18]
cmp byte [esi + ecx], 0
jne 0x480840
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x480832
mov esi, dword [esp + 0x10]
jmp 0x480757
mov esi, dword [esp + 0x10]
jmp 0x480759
and ecx, 0x2000
or ecx, edx
push edx
mov ecx, edi
push edx
je 0x480897
push 0x80
mov edx, esi
call fcn.0048fb5d
add esp, 0xc
mov dword [esp + 0x64], eax
test eax, eax
jne 0x4808ac
push eax
push eax
mov edx, esi
mov ecx, edi
call fcn.0047e439
pop ecx
pop ecx
test eax, eax
jne 0x4808ac
xor edx, edx
jmp 0x480773
mov dword [esp + 0x6c], edx
mov edx, esi
call fcn.0047e439
mov dword [esp + 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x4808d2
inc dword [edi + 0x2c]
xor ecx, ecx
mov eax, dword [edi + 0x2c]
push ecx
push eax
push ecx
push 0x47
pop edx
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.004591cc
add esp, 0xc
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x68], eax
xor edx, edx
cmp byte [ebp + 0x1c], 0
mov dword [esp + 0x30], 6
je 0x480b3f
cmp dword [esp + 0x2c], 0
jne 0x480b3f
dec dword [edi + 0x38]
mov ecx, dword [esp + 0x54]
mov eax, dword [edi + 0x38]
movzx esi, byte [esi + 0x2a]
mov dword [esp + 0x18], eax
cmp cl, 0xb
je 0x48090d
movzx esi, cl
jmp 0x480916
push 2
cmp esi, 0xb
pop eax
cmove esi, eax
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x480967
mov ecx, eax
cmp dword [ecx], edx
je 0x48092f
cmp dword [ecx + 0x1c], edx
je 0x48092f
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x48091f
mov dword [esp + 0x60], ecx
test ecx, ecx
je 0x480947
cmp byte [ecx + 0x14], 0
push 4
pop esi
cmovne esi, dword [esp + 0x30]
cmp ecx, eax
je 0x480963
push edx
push edx
push edx
push 9
pop edx
mov ecx, ebx
call fcn.004591cc
mov ecx, dword [esp + 0x60]
mov edx, eax
add esp, 0xc
mov dword [esp + 0x6c], edx
jmp 0x48096b
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x6c]
cmp esi, 5
jne 0x48099c
cmp cl, 5
je 0x48099c
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 8], ecx
je 0x48099c
test edx, edx
jne 0x48099c
push ecx
push ecx
push ecx
push 9
pop edx
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
inc eax
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4809c4
push eax
push dword [esp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop edx
call fcn.004591cc
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0045974e
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.004591cc
mov eax, esi
add esp, 0xc
sub eax, 1
je 0x480a00
sub eax, 1
je 0x480a00
sub eax, 1
je 0x480a00
sub eax, 1
je 0x480a66
sub eax, 1
je 0x480a72
sub eax, 1
je 0x480a4f
push 2
pop eax
mov esi, eax
push dword [esp + 0x10]
mov edx, esi
mov ecx, edi
call fcn.004795e8
pop ecx
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.00459579
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x480b0b
cmp dword [esp + 0x60], edx
je 0x480b0b
xor esi, esi
mov ecx, ebx
push esi
push esi
push esi
push 9
pop edx
call fcn.004591cc
mov edx, dword [ebp + 0x30]
add esp, 0xc
mov dword [esp + 0x84], eax
jmp 0x480b44
push dword [ebp + 0xc]
mov edx, dword [ebp + 0x30]
xor eax, eax
push eax
push dword [esp + 0x18]
mov ecx, edi
call fcn.0049290c
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00459225
jmp 0x480a0e
mov esi, dword [esp + 0x28]
test esi, esi
je 0x480ace
cmp dword [edi + 0x78], 0
mov eax, edi
mov edx, dword [esp + 0x10]
mov ecx, edi
cmovne eax, dword [edi + 0x78]
push 0xffffffffffffffff
push 1
push 5
mov byte [eax + 0x14], 1
xor eax, eax
push eax
push 1
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x84]
call fcn.0047ace2
add esp, 0x24
xor eax, eax
mov ecx, ebx
push eax
push 1
push esi
push 0x56
pop edx
call fcn.004591cc
add esp, 0xc
mov dword [esp + 0x78], 1
jmp 0x480afb
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp dword [ecx + 8], edx
je 0x480afb
cmp dword [edi + 0x78], edx
mov eax, edi
push 0xffffffffffffffff
cmovne eax, dword [edi + 0x78]
push edx
push dword [ebp + 0x10]
mov edx, ecx
mov ecx, edi
push dword [ebp + 0xc]
mov byte [eax + 0x14], 1
call fcn.0047af8c
add esp, 0x10
mov dword [esp + 0x8c], 1
jmp 0x480a0e
mov esi, dword [esp + 0x88]
test esi, esi
je 0x480b42
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.004591cc
add esp, 0xc
mov dword [esp + 0x9c], eax
lea edx, [esi - 1]
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x30]
xor esi, esi
cmp dword [esp + 0x50], 0
je 0x480b5a
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x480b64
mov ecx, esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x40], eax
test esi, esi
je 0x4812fc
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
cmp dword [eax + ecx*4], 0
je 0x4812ac
test edx, edx
je 0x480bc0
mov eax, edx
xor ecx, ecx
cmp dword [eax], ecx
je 0x480ba1
cmp dword [eax + 0x1c], esi
je 0x480ba1
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x480b91
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
test ecx, ecx
je 0x480bc0
cmp eax, edx
jne 0x480bc0
mov edx, ecx
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
dec dword [edi + 0x38]
cmp byte [esp + 0x17], 0
mov eax, dword [edi + 0x38]
mov dword [esp + 0x58], eax
jne 0x480be7
mov eax, dword [ebp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x10]
inc eax
push eax
call fcn.0047ee11
pop ecx
mov byte [esp + 0x17], 1
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x3c], ecx
cmp dword [esi + 0x24], edx
je 0x480c31
mov ecx, dword [ebp + 8]
push edx
push dword [ecx + eax*4]
mov ecx, ebx
push edx
push 0x4b
pop edx
call fcn.004591cc
mov eax, dword [ebp + 0x14]
add esp, 8
not eax
mov ecx, edi
mov dword [edi + 0x34], eax
mov edx, dword [esi + 0x24]
push dword [esp + 0x5c]
call fcn.0046e5a1
xor eax, eax
pop ecx
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x20]
pop ecx
mov ecx, dword [ebp + 8]
and dword [esp + 0x30], 0
mov edx, dword [ecx + eax*4]
xor eax, eax
mov dword [esp + 0x20], eax
inc edx
movzx eax, word [esi + 0x34]
mov ecx, eax
mov dword [esp + 0x34], edx
cmp word [esp + 0x30], ax
jae 0x480d02
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov esi, edx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
movzx eax, word [eax + edx*2]
movsx edx, ax
mov dword [esp + 0x30], eax
cmp edx, 0xfffffffe
jne 0x480c9e
mov eax, dword [ebp + 0x14]
not eax
mov dword [edi + 0x34], eax
mov edx, dword [ecx + 0x28]
mov ecx, edi
mov eax, dword [esp + 0x18]
push esi
mov edx, dword [edx + eax + 8]
call fcn.0046dc3d
xor eax, eax
pop ecx
mov dword [edi + 0x34], eax
jmp 0x480cdc
cmp edx, 0xffffffff
je 0x480cc8
mov ecx, dword [esp + 0x10]
movsx eax, word [ecx + 0x20]
cmp edx, eax
je 0x480cc8
mov edx, dword [esp + 0x30]
xor eax, eax
push eax
push esi
call fcn.00474bf1
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add eax, ecx
push eax
push 0x51
jmp 0x480cd1
xor eax, eax
push eax
push esi
push dword [ebp + 0x14]
push 0x52
pop edx
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
mov ecx, dword [esp + 0x5c]
inc dword [esp + 0x20]
add dword [esp + 0x18], 0x14
inc esi
movzx edx, word [ecx + 0x34]
cmp dword [esp + 0x20], edx
jl 0x480c64
mov esi, dword [esp + 0x5c]
mov ecx, edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
push dword [edi + eax*4]
movzx eax, cx
mov ecx, ebx
push eax
push edx
push 0x61
pop edx
call fcn.004591cc
mov edi, dword [esp + 0x7c]
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov edx, dword [esp + 0x2c]
je 0x480d46
cmp edx, esi
jne 0x480d46
cmp byte [ebp + 0x1c], 0
jne 0x480d46
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.00459579
jmp 0x4812a8
movzx eax, byte [esi + 0x36]
test eax, eax
je 0x480d36
mov ecx, dword [esp + 0x54]
cmp cl, 0xb
je 0x480d5c
movzx eax, cl
jmp 0x480d65
push 2
cmp eax, 0xb
pop ecx
cmove eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x480d82
cmp byte [ecx + 0x14], 0
push 6
pop eax
push 4
pop ecx
cmove eax, ecx
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x1c], 0
jne 0x480dfa
xor ecx, ecx
cmp dword [esi + 0x14], ecx
jne 0x480dfa
cmp edx, esi
jne 0x480dfa
cmp eax, 5
jne 0x480dfa
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x90], eax
je 0x480dc9
mov edx, dword [esp + 0x10]
push ecx
push ecx
push 0x80
mov ecx, edi
call fcn.0048fb5d
add esp, 0xc
test eax, eax
jne 0x480dfa
xor ecx, ecx
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
and eax, 0x4000
mov dword [esp + 0x90], eax
je 0x480d36
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x30], ecx
jne 0x480dfa
mov ecx, eax
call fcn.0047dc9b
test eax, eax
je 0x480d36
movzx eax, word [esi + 0x32]
mov ecx, ebx
push eax
push dword [esp + 0x38]
push dword [esp + 0x60]
push dword [esp + 0x48]
push 0x1b
pop edx
call fcn.004594df
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x18], eax
cmp esi, edx
jne 0x480e2a
mov ecx, dword [esp + 0x34]
jmp 0x480e3b
mov edx, dword [esp + 0x74]
mov ecx, edi
call fcn.0046f3dc
mov edx, dword [esp + 0x2c]
mov ecx, eax
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x20], ecx
jne 0x480e4e
mov eax, dword [esp + 0x4c]
cmp eax, 5
jne 0x480ea4
mov eax, dword [esp + 0x10]
test byte [eax + 0x1c], 0x80
jne 0x4810b1
xor eax, eax
mov edx, 0x8e
push eax
push ecx
push dword [esp + 0x44]
mov ecx, ebx
call fcn.004591cc
mov ecx, dword [ebp + 0x18]
add esp, 0xc
test ecx, ecx
je 0x4811f0
push ecx
push dword [esp + 0x5c]
mov ecx, ebx
push dword [esp + 0x28]
push 0x35
pop edx
call fcn.004591cc
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0045974e
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x18]
xor edx, edx
sub eax, 1
je 0x48122b
sub eax, 1
je 0x48122b
sub eax, 1
je 0x48122b
sub eax, 1
je 0x48121f
dec eax
sub eax, 1
je 0x481205
mov eax, dword [ebx + 0x6c]
sub eax, dword [esp + 0x18]
cmp dword [esp + 0x28], 0
mov dword [esp + 0x24], eax
je 0x480efb
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
inc dword [esp + 0x78]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x64], 0
je 0x480f1a
test ecx, ecx
je 0x480f1a
push edx
push edx
push dword [ebp + 0xc]
mov edx, 0xa7
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
push dword [esp + 0x3c]
cmp esi, dword [esp + 0x30]
mov ecx, edi
mov edx, dword [esp + 0x14]
sete al
movzx eax, al
push eax
push 5
xor eax, eax
push eax
push dword [esp + 0x84]
push dword [esp + 0x34]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x84]
call fcn.0047ace2
add esp, 0x24
cmp dword [esp + 0x64], 0
je 0x480f77
cmp dword [ebp + 0x18], 0
je 0x480f77
xor eax, eax
mov edx, 0xa8
push eax
push eax
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4810a1
xor ecx, ecx
push ecx
push 1
push eax
push 0x56
pop edx
mov ecx, ebx
call fcn.004591cc
add esp, 0xc
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.004591cc
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x90], eax
call fcn.00459579
mov eax, dword [edi + 0x38]
xor ecx, ecx
dec eax
mov dword [edi + 0x38], eax
mov dword [esp + 0x40], eax
cmp dword [esi + 0x24], ecx
je 0x480fe1
push ecx
push eax
mov eax, dword [esp + 0x3c]
mov ecx, ebx
dec eax
push eax
push 0x32
pop edx
call fcn.004591cc
add esp, 0xc
cmp dword [esp + 0x24], 0
jle 0x48107f
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov ecx, ebx
call fcn.00459a36
push 5
mov esi, eax
lea edi, [esp + 0xa8]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xa4]
cmp al, 0x8e
je 0x48105d
mov ecx, dword [esp + 0xac]
movzx edx, al
test byte [edx + 0x4cee88], 1
cmovne ecx, dword [esp + 0x40]
shr eax, 8
movsx eax, al
push eax
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push ecx
push dword [esp + 0xb8]
mov ecx, ebx
call fcn.004592f6
mov edx, dword [esp + 0xba]
add esp, 0x14
mov ecx, ebx
call fcn.0045974e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
dec eax
inc ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
test eax, eax
jg 0x480ff0
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x5c]
push esi
push 2
pop eax
mov edx, eax
mov ecx, edi
call fcn.004794c6
mov edx, dword [esp + 0x94]
pop ecx
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov dword [esp + 0x8c], 1
jmp 0x481238
cmp esi, edx
je 0x4810f9
xor eax, eax
cmp ax, word [edx + 0x32]
jae 0x4810f9
mov edi, eax
mov edx, dword [edx + 4]
lea eax, [ecx + edi]
push eax
mov ecx, esi
mov dx, word [edx + edi*2]
call fcn.00474bd1
cwde
mov ecx, ebx
push eax
push dword [esp + 0x44]
push 0x5e
pop edx
call fcn.004591cc
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x20]
inc edi
movzx eax, word [edx + 0x32]
cmp edi, eax
jl 0x4810bf
mov edi, dword [esp + 0x70]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x4811f0
movzx ecx, word [edx + 0x32]
mov eax, dword [ebx + 0x6c]
mov edx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x38]
and al, 3
mov dword [esp + 0x30], 0x34
cmp al, 2
cmove edx, dword [esp + 0x34]
mov dword [esp + 0xa0], edx
xor edx, edx
mov eax, edx
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x4811f9
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x20]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.00479d47
mov edx, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x24]
movzx ecx, word [ecx + eax*2]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + 0x32]
dec ecx
cmp eax, ecx
jne 0x48118a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], 0x35
add eax, dword [esp + 0xa0]
mov ecx, esi
push 0xfffffffffffffffe
push edx
mov edx, dword [esp + 0x98]
push eax
push dword [esp + 0x88]
call fcn.00474bf1
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x40]
inc ecx
cwde
add eax, ecx
mov ecx, ebx
push eax
call fcn.004592f6
add esp, 0x14
mov edx, 0x90
mov ecx, ebx
call fcn.0045974e
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
mov eax, ecx
jl 0x481144
mov esi, dword [esp + 0x5c]
jmp 0x480ea0
mov eax, dword [esp + 0x4c]
jmp 0x480ea7
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x18]
jmp 0x480ea9
mov eax, dword [esp + 0x1c]
mov ecx, edi
add eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x30]
push eax
push esi
push dword [esp + 0x18]
call fcn.0049290c
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00459225
jmp 0x481238
mov edx, dword [esp + 0x4c]
mov ecx, edi
push esi
call fcn.004794c6
pop ecx
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.00459579
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x34]
je 0x48125d
push dword [esp + 0x74]
mov edx, eax
mov ecx, edi
call fcn.0046f412
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4812a8
mov esi, dword [esp + 0x84]
test esi, esi
je 0x4812a8
mov eax, dword [eax + 0x10]
test eax, eax
je 0x481282
xor ecx, ecx
cmp dword [eax], ecx
je 0x481282
cmp dword [eax + 0x1c], ecx
jne 0x4812a8
mov edx, dword [esp + 0x6c]
mov ecx, ebx
lea edx, [edx + 1]
call fcn.00459225
mov edx, esi
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
xor eax, eax
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x50], 0
je 0x4812dc
mov eax, dword [esp + 0x80]
inc eax
mov ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x44]
jge 0x4812fc
mov eax, dword [esp + 0x38]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
jmp 0x4812e8
mov eax, dword [esp + 0x44]
inc ecx
mov esi, dword [eax + 0x14]
mov dword [esp + 0x44], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x4812fc
mov edx, dword [ebp + 0x30]
jmp 0x480b7c
mov eax, dword [esp + 0x88]
test eax, eax
je 0x481324
mov edx, eax
mov ecx, ebx
call fcn.00459225
mov edx, dword [esp + 0x9c]
mov ecx, ebx
call fcn.00459a36
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
cmp dword [esp + 0x78], 0
je 0x4813b5
mov esi, dword [esp + 0x40]
xor eax, eax
push eax
push esi
push dword [esp + 0x30]
mov ecx, ebx
push 0x11
pop edx
call fcn.004591cc
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x4813a1
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x481377
push eax
push dword [esp + 0x6c]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop edx
call fcn.004591cc
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0045974e
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x6c]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.004591cc
add esp, 0xc
mov ecx, edi
push dword [esp + 0x10]
push 2
pop eax
mov edx, eax
call fcn.004795e8
pop ecx
jmp 0x4813ac
mov edx, dword [esp + 0x68]
mov ecx, ebx
call fcn.00459225
mov edx, esi
mov ecx, ebx
call fcn.00459579
mov esi, dword [esp + 0x10]
test byte [esi + 0x1c], 0x80
jne 0x4813f4
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
push dword [ecx + eax*4]
movsx eax, word [esi + 0x24]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0x14]
inc eax
push eax
push 0x61
pop edx
call fcn.004591cc
add esp, 0xc
cmp byte [esp + 0x17], 0
jne 0x4813f4
xor eax, eax
mov edx, esi
push eax
mov ecx, ebx
call fcn.0047ee11
pop ecx
mov eax, dword [ebp + 0x28]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret