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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
xor edx, edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x54], edx
mov ebx, edx
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x70]
mov byte [esp + 0x13], dl
mov dword [esp + 0x44], edx
mov esi, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
call fcn.0040faa0
mov eax, dword [ebp + 8]
push ecx
push ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], edx
mov byte [esp + 0x1a], dl
mov dword [eax], edx
call fcn.0040fb18
test al, al
je 0x472bb8
push dword [ebp + 0xc]
lea eax, [edi + 0x150]
mov ecx, edi
push eax
mov dword [esp + 0x54], eax
lea eax, [edi + 0x50]
push eax
call fcn.00471f09
test al, al
je 0x472bb8
xor eax, eax
lea ecx, [esp + 0x44]
push eax
push eax
xor edx, edx
call fcn.0040cd77
test al, al
je 0x472bb8
mov edi, dword [esp + 0x44]
mov ecx, edi
call fcn.0040b083
mov dword [esp + 0x14], eax
test eax, eax
je 0x472bb8
xor ecx, ecx
push ecx
push ecx
push ecx
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x5c]
push edi
push eax
call fcn.0041d691
mov ecx, dword [esp + 0x14]
test al, al
je 0x472b9d
cmp dword [esp + 0x34], edi
jne 0x472b9d
cmp dword [ecx], 0x72435354
jne 0x472b9d
xor eax, eax
inc eax
cmp word [ecx + 4], ax
jb 0x472b9d
cmp dword [ecx + 8], edi
jb 0x472b9d
push 2
push 4
lea eax, [ecx + 0x10]
push eax
push 0x10
pop edx
call fcn.00472067
mov ecx, dword [esp + 0x14]
test al, al
je 0x472b9d
mov eax, ecx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov dword [eax + 0x14], edx
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x20], eax
test edx, edx
je 0x472b9d
lea edi, [eax + 1]
xor ecx, ecx
shr edi, 1
imul edi, edx
mov dword [esp + 0x1c], ecx
mov eax, edi
add eax, edx
mov edx, dword [esp + 0x18]
adc ecx, ecx
mov dword [edx + 0x38], eax
xor eax, eax
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
call fcn.0040b1df
mov ecx, edi
call fcn.0040b083
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x472bb8
mov ecx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x50], eax
jmp 0x47234c
mov edx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x54]
xor eax, eax
push eax
lea eax, [esp + 0x40]
push eax
push edi
push edx
call fcn.0041d691
test al, al
je 0x472b99
cmp dword [esp + 0x34], edi
jne 0x472b99
xor eax, eax
mov dword [esp + 0x2c], eax
test edi, edi
je 0x4724ba
push 0x40
pop ecx
call fcn.0040b083
mov esi, eax
xor eax, eax
test esi, esi
je 0x4723b7
mov dword [esi], 0x4010c4
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x30], eax
mov byte [esi + 0x38], al
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
jmp 0x4723b9
mov esi, eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x44]
push esi
adc ecx, dword [esp + 0x20]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0x74]
mov dword [esi + 8], eax
call fcn.0040fc60
test al, al
je 0x472b99
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x14]
cmp dword [ecx], 0x64487243
jne 0x47249c
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 8]
cmp edx, dword [eax + 0x14]
ja 0x47249c
cmp dword [ecx + 0xc], 2
ja 0x47249c
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
add eax, edx
cmp eax, dword [ebx + 0x14]
mov ebx, dword [esp + 0x3c]
ja 0x47249c
mov eax, dword [ecx + 0xc]
sub eax, 0
je 0x472439
dec eax
sub eax, 1
jne 0x472439
push 4
pop eax
jmp 0x47243b
xor eax, eax
push dword [ecx + 0xc]
push eax
lea eax, [ecx + 0x10]
push eax
mov eax, dword [ecx + 4]
add ecx, edx
sub eax, edx
mov edx, eax
call fcn.00472067
test al, al
je 0x47249c
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x14]
mov ecx, dword [edx + 8]
add ecx, edx
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x30], eax
mov byte [esi + 0x38], 1
mov eax, dword [edx + 4]
mov dword [esi + 0x28], eax
mov eax, dword [edx + 8]
mov dword [esi + 0x2c], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x38], 2
add ecx, dword [edx + 0x14]
mov dword [esp + 0x2c], ecx
cmp ecx, edi
jb 0x472381
jmp 0x4724be
mov edx, dword [esp + 0x18]
mov edi, dword [edx + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x188]
shr eax, 1
imul eax, edi
push 0
pop ebx
mov dword [esp + 0x38], 1
sub ecx, eax
mov eax, dword [edx + 0x18c]
mov dword [edx + 0x40], ecx
sbb eax, ebx
mov dword [esp + 0x44], ecx
imul edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
mov dword [edx + 0x44], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
shr edi, 1
inc edx
mov dword [esp + 0x50], edx
cmp edx, 2
jb 0x472348
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [edi + 0x10], eax
xor eax, eax
mov dword [edi + 0xc], eax
cmp dword [esp + 0x7c], eax
je 0x472b99
jmp 0x47252e
xor eax, eax
push eax
lea ecx, [esp + 0x74]
call fcn.0040fd40
mov esi, eax
test esi, esi
je 0x472b99
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x34], eax
jae 0x472b99
cmp byte [esi + 0x38], 0
je 0x4726c8
mov edi, dword [edi + 0xc]
test edi, edi
je 0x47269f
movzx eax, word [edi + 0x1e]
movzx ebx, word [esi + 0x1e]
mov dword [esp + 0x58], eax
movzx eax, ax
cdq
mov ecx, eax
movzx eax, word [esi + 0x1e]
mov dword [esp + 0x38], edx
cdq
cmp word [esp + 0x58], bx
jae 0x47258e
sub eax, ecx
sbb edx, dword [esp + 0x38]
jmp 0x47259a
sub ecx, eax
mov eax, ecx
sbb dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
add ecx, 5
cmp edx, ebx
jb 0x4725be
ja 0x4725ad
cmp eax, ecx
jbe 0x4725be
movzx ecx, word [edi + 0x1e]
movzx edx, word [esi + 0x1e]
cmp dx, cx
sbb eax, eax
neg eax
jmp 0x4725d1
movzx ecx, word [edi + 0x1e]
movzx edx, word [esi + 0x1e]
cmp cx, dx
jb 0x472698
xor eax, eax
test eax, eax
jne 0x472698
cmp cx, dx
jne 0x4725fc
movzx ecx, word [edi + 0x1c]
movzx eax, word [esi + 0x1c]
mov edx, dword [edi + 0x18]
cmp ecx, eax
jb 0x472698
ja 0x4725fc
cmp edx, dword [esi + 0x18]
jb 0x472698
mov eax, dword [edi + 0x18]
cmp eax, dword [esi + 0x18]
jne 0x4726c4
mov eax, dword [edi + 0x1c]
cmp eax, dword [esi + 0x1c]
jne 0x4726c4
movzx eax, word [edi + 0x16]
movzx ecx, word [esi + 0x16]
mov dword [esp + 0x58], eax
movzx eax, ax
cdq
mov dword [esp + 0x38], eax
mov eax, ecx
mov dword [esp + 0x34], edx
cdq
cmp word [esp + 0x58], cx
jae 0x472640
sub eax, dword [esp + 0x38]
sbb edx, dword [esp + 0x34]
jmp 0x472650
sub dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
sbb dword [esp + 0x34], edx
mov edx, dword [esp + 0x34]
test edx, edx
jb 0x47266e
ja 0x472661
mov edx, dword [esp + 0x20]
add edx, 5
cmp eax, edx
jbe 0x47266e
movzx edx, word [edi + 0x16]
cmp cx, dx
sbb eax, eax
neg eax
jmp 0x472679
movzx edx, word [edi + 0x16]
cmp dx, cx
jb 0x472698
xor eax, eax
test eax, eax
jne 0x472698
cmp dx, cx
jne 0x4726c4
movzx ecx, word [edi + 0x14]
movzx eax, word [esi + 0x14]
mov edx, dword [edi + 0x10]
cmp ecx, eax
ja 0x4726c4
jb 0x472698
cmp edx, dword [esi + 0x10]
jae 0x4726c4
mov ecx, edi
call fcn.0040b1df
mov edi, dword [esp + 0x18]
mov dword [edi + 0xc], esi
mov eax, dword [esi + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x40], eax
jmp 0x4726cf
mov edi, dword [esp + 0x18]
mov ecx, esi
call fcn.0040b1df
cmp dword [esp + 0x7c], 0
jne 0x47252c
mov ecx, dword [edi + 0xc]
xor edx, edx
mov esi, edx
test ecx, ecx
je 0x472b99
mov eax, dword [ecx + 0x10]
or eax, dword [ecx + 0x14]
jne 0x472703
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
jne 0x472703
mov byte [esp + 0x13], 1
jmp 0x472b99
mov ecx, dword [esp + 0x14]
call fcn.0040b1df
mov esi, dword [edi + 0x14]
shl esi, 2
mov ecx, esi
mov dword [esp + 0x58], esi
call fcn.0040b083
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x472bb8
lea ecx, [edi + 0x1a8]
call fcn.0040f957
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x10]
mov edx, ecx
movzx eax, word [eax + 0x14]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x34], ecx
mov ecx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x3c], eax
cmp eax, ecx
ja 0x47277a
jb 0x472772
cmp dword [esp + 0x34], edx
jae 0x47277a
mov cl, 1
mov byte [esp + 0x12], cl
jmp 0x47277e
mov cl, byte [esp + 0x12]
test cl, cl
je 0x47279c
cmp eax, dword [esp + 0x50]
ja 0x472b93
jb 0x47279c
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x34], eax
ja 0x472b93
push esi
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x4c]
push eax
push ebx
lea eax, [esp + 0x78]
push eax
push dword [edi + 0x44]
xor eax, eax
push dword [edi + 0x40]
push dword [edi + 0x3c]
push dword [edi + 0x38]
push 0x10
push eax
lea eax, [edi + 0x1a8]
push eax
lea eax, [edi + 0x150]
push eax
call fcn.004720a3
test al, al
je 0x472b93
mov eax, dword [edi + 0x1b8]
cmp dword [eax], 0x63527243
jne 0x472b85
mov esi, dword [edi + 0x40]
sub esi, dword [edi + 0x38]
mov edx, dword [edi + 0x44]
sbb edx, dword [edi + 0x3c]
cmp dword [eax + 8], 0x10
jb 0x472b85
mov ecx, dword [eax + 4]
cmp ecx, 0x10
jbe 0x472b85
cmp dword [esp + 0x54], edx
ja 0x472b85
jb 0x472836
cmp dword [eax + 8], esi
ja 0x472b85
cmp dword [esp + 0x54], edx
ja 0x472b85
jb 0x472836
cmp ecx, esi
ja 0x472b85
cmp dword [eax + 8], ecx
jae 0x472b85
cmp dword [eax + 0xc], 2
ja 0x472b85
push dword [esp + 0x58]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x4c]
push eax
push ebx
lea eax, [esp + 0x78]
push eax
push dword [edi + 0x44]
lea eax, [ecx - 0x10]
push dword [edi + 0x40]
push dword [edi + 0x3c]
push dword [edi + 0x38]
push eax
push 0x10
lea eax, [edi + 0x1a8]
push eax
lea eax, [edi + 0x150]
push eax
call fcn.004720a3
test al, al
je 0x472b93
mov ebx, dword [edi + 0x1b8]
xor ecx, ecx
mov dword [esp + 0x64], ebx
mov eax, dword [ebx + 0xc]
lea edx, [ebx + 0x10]
sub eax, ecx
je 0x4728a9
dec eax
sub eax, 1
jne 0x4728a9
push 4
pop ecx
push dword [ebx + 0xc]
mov eax, dword [ebx + 8]
push ecx
push edx
mov edx, dword [ebx + 4]
sub edx, eax
lea ecx, [eax + ebx]
call fcn.00472067
test al, al
je 0x472b85
mov ecx, dword [ebx + 8]
add ecx, ebx
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x1c], eax
or eax, edx
mov dword [esp + 0x2c], edx
je 0x472b7d
movzx eax, word [ecx + 0xe]
mov ebx, dword [esp + 0x28]
cdq
mov edi, edx
shr ebx, 0x10
xor edx, edx
mov esi, eax
cmp edx, edi
ja 0x47290b
jb 0x472901
cmp ebx, esi
jae 0x47290b
mov ecx, esi
mov eax, edi
sub ecx, ebx
sbb eax, edx
jmp 0x472913
mov ecx, ebx
mov eax, edx
sub ecx, esi
sbb eax, edi
mov edx, dword [esp + 0x20]
add edx, 5
test eax, eax
jb 0x47293a
ja 0x472924
cmp ecx, edx
jbe 0x47293a
xor edx, edx
cmp edx, edi
ja 0x472b7f
jb 0x47294e
cmp ebx, esi
ja 0x472b7f
jmp 0x47294e
xor edx, edx
cmp edx, edi
jb 0x472b7f
ja 0x47294e
cmp ebx, esi
jb 0x472b7f
cmp ebx, esi
jne 0x47297c
cmp edx, edi
jne 0x47297c
mov eax, dword [esp + 0x2c]
movzx ecx, ax
mov eax, dword [esp + 0x28]
movzx eax, ax
cmp eax, ecx
jb 0x472b7f
ja 0x47297c
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x1c]
jb 0x472b7f
mov ecx, dword [esp + 0x40]
shr ecx, 0x10
cmp edx, edi
ja 0x472998
jb 0x47298d
cmp ecx, esi
jae 0x472998
mov edx, esi
mov eax, edi
sub edx, ecx
sbb eax, 0
jmp 0x4729a1
mov edx, ecx
push 0
sub edx, esi
pop eax
sbb eax, edi
test eax, eax
jb 0x4729d6
ja 0x4729b2
mov eax, dword [esp + 0x20]
add eax, 5
cmp edx, eax
jbe 0x4729d6
xor edx, edx
cmp edx, edi
jb 0x4729e2
ja 0x4729be
cmp ecx, esi
jbe 0x4729e4
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp edi, eax
ja 0x472a2c
jb 0x4729ce
cmp esi, ebx
jae 0x472a2c
mov ecx, ebx
sub ecx, esi
sbb eax, edi
jmp 0x472a35
xor edx, edx
cmp edx, edi
jb 0x4729be
ja 0x4729e2
cmp ecx, esi
jb 0x4729be
cmp ecx, esi
jne 0x472a0c
cmp edx, edi
mov edx, dword [esp + 0x1c]
jne 0x472a10
mov eax, dword [esp + 0x2c]
movzx ecx, ax
mov eax, dword [esp + 0x40]
movzx eax, ax
cmp eax, ecx
jb 0x4729c2
mov eax, dword [esp + 0x30]
ja 0x472a14
cmp eax, edx
jb 0x4729c2
jmp 0x472a14
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
cmp eax, edx
jne 0x472b35
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x2c]
jne 0x472b35
jmp 0x4729c2
mov ecx, esi
mov eax, edi
sub ecx, ebx
sbb eax, 0
test eax, eax
jb 0x472a58
ja 0x472a4a
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, 5
cmp ecx, eax
jbe 0x472a58
xor eax, eax
cmp edi, eax
jb 0x472a64
ja 0x472a9e
cmp esi, ebx
jbe 0x472a66
jmp 0x472a9e
xor eax, eax
cmp edi, eax
jb 0x472a9e
ja 0x472a64
cmp esi, ebx
jb 0x472a9e
cmp esi, ebx
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jne 0x472a8a
cmp edi, eax
jne 0x472a8a
movzx ecx, bx
movzx eax, si
cmp ecx, eax
jb 0x472a9e
mov eax, dword [esp + 0x24]
ja 0x472a8e
cmp edx, eax
jb 0x472a9e
jmp 0x472a8e
mov eax, dword [esp + 0x24]
cmp eax, edx
jne 0x472b35
cmp esi, ebx
jne 0x472b35
push 0x20
pop ecx
call fcn.0040b083
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x472ac5
mov dword [ebx], 0x401890
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
jmp 0x472ac7
mov ebx, eax
test ebx, ebx
je 0x472b97
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
push ebx
mov eax, dword [ecx + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0xc]
xor ecx, ecx
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 8]
add eax, dword [esp + 0x38]
mov dword [ebx + 8], eax
adc ecx, dword [esp + 0x40]
mov dword [ebx + 0xc], ecx
mov eax, dword [edx + 4]
sub eax, dword [edx + 8]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0x18]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
lea ecx, [edi + 0x18]
call esi
test al, al
je 0x472b79
mov eax, dword [esp + 0x38]
inc dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
cmp dword [eax + 8], ecx
jne 0x472b35
mov ecx, dword [esp + 0x28]
cmp dword [eax + 0xc], ecx
je 0x472b85
mov esi, dword [esp + 0x58]
mov eax, esi
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x34]
sub ebx, eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x3c]
push 0
pop edi
sbb eax, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], eax
cmp ebx, edx
jne 0x472b66
cmp eax, ecx
je 0x472b73
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jmp 0x472766
mov ebx, edi
mov esi, edi
jmp 0x472b99
xor eax, eax
jmp 0x472b97
xor edx, edx
mov ebx, edx
mov esi, edx
jmp 0x472b99
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x48]
mov byte [esp + 0x13], 1
mov dword [ecx], eax
xor eax, eax
mov ebx, eax
mov esi, eax
mov ecx, dword [esp + 0x14]
call fcn.0040b1df
test esi, esi
je 0x472bad
mov ecx, esi
call fcn.0040b1df
test ebx, ebx
je 0x472bb8
mov ecx, ebx
call fcn.0040b1df
lea ecx, [esp + 0x70]
call fcn.0040faf5
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8