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

Disassembly:
sub esp, 0x60
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x60], edx
mov eax, dword [edi + 0x28]
mov dword [esp + 0xc], edi
cmp eax, ebx
je 0x472bd6
call fcn.0046e070
mov edx, 3
mov ecx, edi
call fcn.0046ec00
test eax, eax
je 0x472bd6
call fcn.0046f480
mov esi, eax
cmp esi, ebx
je 0x472bd6
push ebp
jmp 0x47266c
mov edi, dword [esp + 0x10]
mov ax, word [esi + 0x10]
cmp ax, bx
je 0x472690
mov ecx, dword [esp + 0x64]
mov word [0x493b40], ax
xor eax, eax
mov ax, word [esi + 0x10]
mov edx, dword [ecx + 0x24]
add edx, eax
mov dword [0x493b38], edx
mov ecx, esi
call fcn.0042f560
mov edx, edi
mov ecx, eax
call fcn.004721a0
test eax, eax
je 0x472bc6
cmp dword [esi + 4], 0x131
jne 0x47281c
mov dword [esp + 0x48], ebx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], ebx
mov di, word [eax + 0xa]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x18]
mov eax, edi
and eax, 0xfff
mov dword [esp + 0x3c], edx
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx + 0x14]
cdq
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x50], ecx
call fcn.0046eb70
mov ebp, eax
cmp ebp, ebx
je 0x472bc6
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov ecx, dword [ecx]
call fcn.004724e0
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.0042f560
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x44], eax
call fcn.0046e330
test eax, eax
je 0x47277a
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], 1
mov dword [esp + 0x40], ebx
mov edi, ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
jmp 0x472989
mov dx, word [esi + 0xa]
mov dword [esp + 0x18], ebx
and edx, 0xf000
cmp edx, 0x5000
jne 0x4727d9
mov eax, dword [esi + 0x18]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x24]
mov ecx, dword [eax + 0x18]
mov dx, word [eax + 0xa]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 0x14]
mov word [esp + 0x20], dx
mov dword [esp + 0x1c], ecx
call fcn.0046eb70
mov edi, eax
test edi, edi
je 0x472bc4
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [ecx]
jmp 0x472975
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x18]
mov ebx, dword [eax + 0x24]
mov edx, dword [eax + 0x18]
mov ax, word [eax + 0xa]
mov dword [esp + 0x38], edx
mov ecx, dword [ebx + 0x14]
mov word [esp + 0x20], ax
mov dword [esp + 0x1c], ecx
call fcn.0046eb70
mov edi, eax
test edi, edi
je 0x472bc4
mov ecx, dword [edi + 4]
mov dword [esp + 0x28], ecx
jmp 0x47296c
mov edx, esi
mov ecx, 1
mov dword [esp + 0x58], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], ebx
call fcn.0046eb00
mov ebp, eax
mov edx, esi
mov ecx, 3
mov dword [esp + 0x60], ebp
call fcn.0046eb00
mov edx, edi
mov ecx, eax
call fcn.004724e0
lea edx, [esp + 0x48]
mov ecx, esi
mov edi, eax
call fcn.00472330
mov dword [esp + 0x5c], eax
mov al, byte [edi + 8]
cmp al, 7
jne 0x472bc6
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x6c], edx
call fcn.0046eae0
mov cx, word [ebp + 0xa]
mov edi, dword [ebp + 0x14]
mov eax, dword [eax + 0x14]
mov word [esp + 0x54], cx
mov ecx, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], edi
call fcn.0046eb70
mov ebp, eax
cmp ebp, ebx
je 0x472bc6
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
call fcn.004724e0
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.0042f560
cmp word [esi + 0x20], 0xad
mov dword [esp + 0x44], eax
jne 0x472921
mov edx, esi
mov ecx, 2
mov dword [esp + 0x18], 1
call fcn.0046eb00
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], edi
mov edi, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
jmp 0x472989
mov edx, esi
mov ecx, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], ebx
call fcn.0046eb00
mov ecx, dword [esi + 0x18]
mov ebx, eax
call fcn.0046eae0
mov cx, word [ebx + 0xa]
mov eax, dword [eax + 0x14]
mov word [esp + 0x20], cx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
call fcn.0046eb70
mov edi, eax
test edi, edi
je 0x472bc4
mov edx, dword [edi + 4]
mov dword [esp + 0x28], edx
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
call fcn.004724e0
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.0042f560
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x54]
call fcn.00484250
test eax, eax
je 0x472bc4
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
call fcn.00430640
test eax, eax
jne 0x472bc4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp eax, ecx
jne 0x472bc4
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jne 0x472bc4
mov edx, dword [esp + 0x14]
cmp byte [edx + 8], 7
jne 0x472bc4
mov edx, dword [esp + 0x10]
call fcn.004721a0
test eax, eax
je 0x472bc4
mov edx, ebp
mov ecx, esi
call fcn.00469750
test eax, eax
je 0x472bc4
mov edx, edi
mov ecx, esi
call fcn.00469750
test eax, eax
je 0x472bc4
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x472a25
mov edi, dword [eax + 0x1c]
mov ebp, dword [esp + 0x58]
jmp 0x472a37
mov ebp, dword [esp + 0x58]
mov ecx, dword [ebp + 0x1c]
call fcn.0046eae0
mov edi, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x472a43
xor eax, eax
jmp 0x472a61
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x472a50
mov eax, dword [ecx + 0x18]
jmp 0x472a61
test eax, eax
je 0x472a59
mov eax, dword [eax + 0x18]
jmp 0x472a61
mov ecx, dword [ebp + 0x18]
call fcn.0046eae0
mov ecx, dword [esp + 0x10]
mov edx, eax
push ecx
push esi
mov ecx, edi
call fcn.00472000
test eax, eax
jne 0x472bc4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 0x18]
test edx, edx
jg 0x472aaf
jl 0x472a8c
test esi, esi
jae 0x472aaf
mov edi, dword [esp + 0x68]
mov ecx, esi
neg ecx
mov eax, edx
adc eax, 0
neg eax
cmp edi, ecx
jne 0x472bc4
cmp dword [esp + 0x6c], eax
jne 0x472bc4
jmp 0x472ac3
cmp dword [esp + 0x68], esi
jne 0x472bc4
cmp dword [esp + 0x6c], edx
jne 0x472bc4
cmp dword [esp + 0x30], 0x141
jne 0x472bc4
test edx, edx
jl 0x472bc4
jg 0x472ae4
cmp esi, 1
jb 0x472bc4
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004721e0
mov ecx, dword [0x4982d4]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
push ecx
push eax
mov eax, dword [esp + 0x64]
push edx
test edi, edi
push eax
je 0x472b2b
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
push 0
push ecx
mov ecx, dword [esp + 0x78]
call fcn.00472360
jmp 0x472b58
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x74]
push ebx
call fcn.00472360
mov esi, dword [esp + 0x40]
test esi, esi
je 0x472b58
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.00468f90
mov ecx, esi
call fcn.0042cda0
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x472b6f
mov ecx, dword [esp + 0x50]
mov edx, esi
call fcn.00468f90
mov ecx, esi
jmp 0x472bbf
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
mov ecx, dword [edx + 0x14]
call fcn.0042cda0
mov eax, dword [ebp + 0x18]
test edi, edi
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
mov esi, dword [edx + 0x14]
jne 0x472b9b
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.00468f90
mov ecx, esi
call fcn.0042cda0
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x14]
mov esi, dword [ecx + 0x14]
mov ecx, dword [esp + 0x50]
mov edx, esi
call fcn.00468f90
mov ecx, esi
call fcn.0042cda0
mov ecx, ebp
call fcn.0042cda0
xor ebx, ebx
call fcn.0046f480
mov esi, eax
cmp esi, ebx
jne 0x472668
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x60
ret