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

Disassembly:
push 0xffffffffffffffff
push 0x55ce91
mov eax, dword fs:[0]
push eax
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f168c]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x70], ebx
mov esi, dword [esp + 0x148]
mov dword [esp + 0xa8], 0
test esi, esi
je 0x47354e
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
test eax, eax
jl 0x472799
jg 0x47277c
test ecx, ecx
jb 0x472799
push 0
push 0x3e8
push eax
push ecx
call fcn.0050e490
mov ecx, edx
test ecx, ecx
jl 0x4727a0
jg 0x472799
cmp eax, 0x7fffffff
jb 0x4727a0
or eax, 0xffffffff
or edx, eax
jmp 0x4727a5
mov dword [esp + 0x3c], edx
cdq
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x38], eax
and eax, edx
mov dword [esp + 0x3c], edx
cmp eax, 0xffffffff
je 0x472856
push 0x579508
push esi
call fcn.0050cb02
add esp, 8
test eax, eax
jne 0x472856
mov ebp, dword [edi]
call fcn.00470a50
neg eax
cmp ebp, eax
jne 0x472815
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004709d0
add esp, 8
test eax, eax
jne 0x47283f
mov edx, dword [0x5e9844]
mov esi, dword [esp + 0x144]
push edx
mov ecx, esi
call fcn.00403311
jmp 0x473574
mov eax, dword [edi]
cdq
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], edx
js 0x472856
jg 0x47282b
cmp dword [esp + 0x38], 0
jb 0x472856
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00470a00
jmp 0x4727f4
push esi
mov esi, dword [esp + 0x148]
mov ecx, eax
call fcn.00470fc0
add esp, 4
jmp 0x473574
push edi
lea eax, [esp + 0x58]
push eax
mov ecx, ebx
call fcn.00471580
movzx ecx, word [esp + 0x5a]
movzx eax, word [esp + 0x56]
movzx edx, word [esp + 0x58]
xor ebp, ebp
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf4], eax
mov eax, dword [0x5e9844]
mov ecx, 1
mov dword [esp + 0xf8], edx
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], 0x4c
mov dword [esp + 0x114], ebp
mov dword [esp + 0xb0], eax
mov edx, eax
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13c], 3
mov dword [esp + 0x40], esi
cmp word [esi], bp
je 0x4734b2
jmp 0x4728fb
mov edi, dword [esp + 0x14c]
mov ebx, dword [esp + 0x70]
movzx eax, word [esi]
mov ebp, dword [esp + 0x64]
cmp ax, 0x25
je 0x472910
movzx eax, ax
jmp 0x473488
movzx eax, word [esi + 2]
add esi, 2
add eax, 0xffffffa7
mov dword [esp + 0x40], esi
cmp eax, 0x1e
ja case.0x47292a.90
movzx ecx, byte [eax + 0x4735a4]
jmp dword [ecx*4 + 0x473594]
push str._04d
jmp 0x47294b
push str._03d
jmp 0x47294b
push 0x5794b0
jmp 0x47294b
push str._02d
lea ecx, [esp + 0x1c]
call fcn.0045fc90
movzx eax, word [esi]
cmp eax, 0x79
ja case.0x472963.1
movzx edx, byte [eax + 0x47361c]
jmp dword [edx*4 + 0x4735c4]
push 0
lea ecx, [esp + 0x1c]
call fcn.00461110
movzx eax, word [esi]
cmp ax, 0x2d
je 0x472997
cmp ax, 0x2b
je 0x472997
cmp ax, 0x20
je 0x472997
push eax
call fcn.0050b809
add esp, 4
test eax, eax
je 0x4729a8
movzx eax, word [esi]
push eax
push 1
lea ecx, [esp + 0x20]
call fcn.0045fc10
jmp 0x472975
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 8], 0
je case.0x472963.37
push 0x25
push 1
lea ecx, [esp + 0x7c]
call fcn.00460000
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x140], 0x21
call fcn.004621e0
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 3
cmp eax, 0xffffffff
je 0x4729fc
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x4729fc
call fcn.0045ea90
push 0x64
push 1
lea ecx, [esp + 0x20]
call fcn.0045fc10
jmp 0x472954
cmp word [esp + 0x6c], 7
jne 0x472a1f
lea ecx, [esp + 0x54]
call fcn.00470860
movzx eax, word [esp + 0x6c]
xor ecx, ecx
cmp word [esi], 0x61
lea edx, [esp + 0xc4]
sete cl
inc ecx
push ecx
push eax
push edx
call fcn.004711d0
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 4
call fcn.00460080
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 3
cmp eax, 0xffffffff
je 0x473494
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x473494
call fcn.0045ea90
jmp 0x473494
mov ecx, dword [esp + 0x60]
xor eax, eax
cmp word [esi], 0x62
lea edx, [esp + 0xb8]
sete al
inc eax
push eax
push ecx
push edx
call fcn.00471150
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 5
call fcn.00460080
mov ecx, dword [esp + 0xb8]
jmp 0x472a60
push edi
lea eax, [esp + 0x11c]
push eax
mov ecx, ebx
call fcn.00471580
mov ecx, dword [eax + 0x10]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
add edx, edx
add edx, edx
mov eax, ecx
sub eax, edx
cmp eax, 0xa
mov dword [esp + 0xac], ecx
lea ebp, [eax + 0x7c4]
jl 0x472b1d
lea ebp, [eax + 0x7a8]
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
sar ecx, 2
sub ecx, eax
sub ecx, edi
add ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
je 0x472bc2
nop
mov edx, ebp
and edx, 0x80000003
jns 0x472b8f
dec edx
or edx, 0xfffffffc
inc edx
inc ebp
mov eax, 1
test edx, edx
jne 0x472b9e
mov eax, 2
add ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x472b80
cmp ebp, 0x7d0
jl 0x472bcd
sub ebp, 0x1c
mov eax, dword [0x5e9844]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
push ebp
lea ecx, [esp + 0x30]
push 0x5794b0
push ecx
mov byte [esp + 0x148], 7
call fcn.00460d60
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
mov ecx, ebp
sub ecx, eax
push ecx
lea edx, [esp + 0x38]
push 0x5794b0
push edx
call fcn.00460d60
mov eax, dword [0x576324]
mov ecx, dword [esp + 0x160]
add esp, 0x18
push eax
push 0
push ecx
lea ecx, [esp + 0x30]
call fcn.0045fb60
mov eax, dword [0x5e9844]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x13c], 0xc
mov ebx, 1
mov esi, ebx
neg esi
push esi
push 1
lea ecx, [esp + 0x28]
call fcn.00460000
mov edx, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x140], 0xd
call fcn.004605f0
cmp eax, 0xffffffff
je 0x472ca2
push esi
push 1
lea ecx, [esp + 0x28]
call fcn.0045fc10
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
call fcn.004605f0
cmp eax, 0xffffffff
jne 0x472c83
lea ecx, [ebx - 1]
cmp ecx, 3
ja case.default.0x472cad
lea edx, [ebx - 1]
jmp dword [edx*4 + 0x473698]
lea ecx, [esp + 0x34]
jmp 0x472cd4
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x48]
jmp 0x472cd9
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x34]
jmp 0x472cd9
lea ecx, [esp + 0x48]
lea eax, [esp + 0x20]
push eax
call fcn.0045f4a0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xc
cmp eax, 0xffffffff
je 0x472d01
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472d01
call fcn.0045ea90
inc ebx
cmp ebx, 5
jl 0x472c58
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
push 1
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00460ed0
mov ecx, dword [esp + 0x28]
test eax, eax
mov eax, dword [esp + 0x44]
push 1
push eax
push ecx
lea ecx, [esp + 0x30]
seta bl
call fcn.00460ed0
test eax, eax
ja 0x472d42
test bl, bl
je 0x472d44
mov bl, 1
lea eax, [esp + 0xd0]
call fcn.00470790
cmp word [esp + 0x6c], 7
movzx edx, word [esp + 0x5a]
movzx eax, word [esp + 0x58]
movzx ecx, word [esp + 0x56]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], ecx
jne 0x472d85
lea ecx, [esp + 0x54]
call fcn.00470860
movzx edx, word [esp + 0x6c]
push 0
lea ecx, [esp + 0xc4]
mov dword [esp + 0xec], edx
call fcn.00470bb0
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0xc0]
push eax
call fcn.00471eb0
movzx edx, word [esp + 0x5c]
movzx ecx, ax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x40]
add ebp, 0xfffff894
cmp word [ecx], 0x63
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xf0], 0
mov eax, 0x579378
je 0x472dfd
mov eax, 0x5794dc
push eax
lea ecx, [esp + 0xd4]
lea esi, [esp + 0x20]
call fcn.00470fc0
mov eax, dword [0x5e9844]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0xb0]
push esi
lea edx, [esp + 0x58]
push str._04d
push edx
mov byte [esp + 0x14c], 0x10
call fcn.00460d60
imul edi, edi, 0x64
sub esi, edi
push esi
lea eax, [esp + 0x60]
push str._02d
push eax
call fcn.00460d60
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add esp, 0x1c
push 1
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00460ed0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
push 1
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00460ed0
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
push 1
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.00460ed0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push 1
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00460ed0
test bl, bl
je 0x472ed4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
push 1
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00460ed0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
push 1
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.00460ed0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 8]
push eax
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00460080
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xf
cmp eax, 0xffffffff
je 0x472f0a
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472f0a
call fcn.0045ea90
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xe
cmp eax, 0xffffffff
je 0x472f2d
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472f2d
call fcn.0045ea90
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xc
cmp eax, 0xffffffff
je 0x472f50
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472f50
call fcn.0045ea90
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xb
cmp eax, 0xffffffff
je 0x472f73
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472f73
call fcn.0045ea90
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0xa
cmp eax, 0xffffffff
je 0x472f96
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472f96
call fcn.0045ea90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 9
cmp eax, 0xffffffff
je 0x472fb9
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472fb9
call fcn.0045ea90
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 8
cmp eax, 0xffffffff
je 0x472fdc
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472fdc
call fcn.0045ea90
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 7
cmp eax, 0xffffffff
je 0x472fff
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x472fff
call fcn.0045ea90
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 6
cmp eax, 0xffffffff
je 0x473022
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x473022
call fcn.0045ea90
mov ecx, dword [esp + 0x2c]
jmp 0x472a60
movzx ecx, word [esp + 0x5c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x8c]
push eax
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x11
call fcn.00460080
mov ecx, dword [esp + 0x84]
jmp 0x472a60
movzx ecx, word [esp + 0x5a]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x80]
push eax
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x12
call fcn.00460080
mov ecx, dword [esp + 0x78]
jmp 0x472a60
mov ax, word [esp + 0x5a]
cmp ax, 0xc
jbe 0x4730bb
movzx eax, ax
sub eax, 0xc
jmp 0x4730c8
test ax, ax
movzx eax, ax
jne 0x4730c8
mov eax, 0xc
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x13
call fcn.00460080
mov ecx, dword [esp + 0x8c]
jmp 0x472a60
mov esi, dword [esp + 0x18]
push edi
mov ecx, ebx
call fcn.00471eb0
movzx eax, ax
push eax
lea ecx, [esp + 0xb8]
push esi
push ecx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x14
call fcn.00460080
mov ecx, dword [esp + 0xb4]
jmp 0x472a60
push edi
lea edx, [esp + 0x11c]
push edx
mov ecx, ebx
call fcn.00471580
movzx eax, word [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x15
call fcn.00460080
mov ecx, dword [esp + 0x94]
jmp 0x472a60
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
inc eax
push eax
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x16
call fcn.00460080
mov ecx, dword [esp + 0xc8]
jmp 0x472a60
movzx eax, word [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x17
call fcn.00460080
mov ecx, dword [esp + 0x9c]
jmp 0x472a60
push 0x5793f0
lea ecx, [esp + 0xf8]
lea esi, [esp + 0xc0]
call fcn.00470fc0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x18
call fcn.00460080
mov ecx, dword [esp + 0xbc]
jmp 0x472a60
movzx eax, word [esp + 0x56]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x19
call fcn.00460080
mov ecx, dword [esp + 0xa4]
jmp 0x472a60
mov esi, dword [esp + 0x18]
push edi
push 2
mov ecx, ebx
call fcn.004724f0
movzx eax, ax
push eax
lea ecx, [esp + 0xd0]
push esi
push ecx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1a
call fcn.00460080
mov ecx, dword [esp + 0xcc]
jmp 0x472a60
mov esi, dword [esp + 0x18]
push edi
push 1
mov ecx, ebx
call fcn.004724f0
movzx edx, ax
push edx
lea eax, [esp + 0x80]
push esi
push eax
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1b
call fcn.00460080
mov ecx, dword [esp + 0x7c]
jmp 0x472a60
cmp word [esp + 0x6c], 7
jne 0x473335
lea ecx, [esp + 0x54]
call fcn.00470860
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1c
call fcn.00460080
mov ecx, dword [esp + 0x80]
jmp 0x472a60
push 0x5794d4
lea ecx, [esp + 0xf8]
lea esi, [esp + 0x8c]
call fcn.00470fc0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1d
call fcn.00460080
mov ecx, dword [esp + 0x88]
jmp 0x472a60
mov eax, 0x51eb851f
imul ebp
mov ecx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ebp, eax
push ebp
push ecx
lea edx, [esp + 0x98]
push edx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1e
call fcn.00460080
mov ecx, dword [esp + 0x90]
jmp 0x472a60
mov eax, dword [esp + 0x18]
push ebp
push eax
lea ecx, [esp + 0xa0]
push ecx
call fcn.00460d00
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x1f
call fcn.00460080
mov ecx, dword [esp + 0x98]
jmp 0x472a60
push 0x5794a0
lea ecx, [esp + 0xf8]
lea esi, [esp + 0xa4]
call fcn.00470fc0
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push ecx
push eax
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x148], 0x20
call fcn.00460080
mov ecx, dword [esp + 0xa0]
jmp 0x472a60
push 0x25
jmp 0x473489
movzx eax, word [esi]
push eax
push 1
lea ecx, [esp + 0x1c]
call fcn.0045fc10
mov esi, dword [esp + 0x40]
add esi, 2
cmp word [esi], 0
mov dword [esp + 0x40], esi
jne 0x4728f0
mov eax, dword [0x5e9844]
mov edx, dword [esp + 0x14]
cmp dword [edx - 8], 0
mov esi, dword [esp + 0x144]
jne 0x4734c3
mov dword [esi], eax
jmp 0x4734d5
mov dword [esi], edx
mov eax, dword [edx - 0xc]
cmp eax, 0xffffffff
je 0x4734d5
inc eax
mov dword [edx - 0xc], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov dword [esp + 0xa8], 1
mov byte [esp + 0x13c], 2
cmp eax, 0xffffffff
je 0x473507
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x473503
call fcn.0045ea90
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
lea ecx, [edx - 0xc]
mov byte [esp + 0x13c], 1
cmp eax, 0xffffffff
je 0x473526
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x473526
call fcn.0045ea90
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x13c], 0
cmp eax, 0xffffffff
je 0x473574
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x473574
call fcn.0045ea90
jmp 0x473574
mov eax, dword [0x5e9844]
test eax, eax
jne 0x47355c
mov eax, 0x5bb970
mov edx, dword [0x576324]
mov esi, dword [esp + 0x144]
push edx
push 0
push eax
mov ecx, esi
call fcn.0045fb60
mov eax, esi
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret 0xc