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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x46f070
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
push edi
mov edi, dword [ebp + 0x30]
test edi, edi
je 0x4172ac
mov eax, dword [ebp + 0x20]
mov al, byte [eax]
cmp al, 0x2b
je 0x4172a5
cmp al, 0x2d
jne 0x4172ac
mov esi, 1
jmp 0x4172ae
xor esi, esi
mov ebx, dword [ebp + 0x18]
mov ecx, ebx
mov dword [esp + 0x18], esi
call fcn.00405b40
and eax, 0x3000
cmp eax, 0x3000
mov eax, dword [ebp + 0x20]
je 0x4172d2
mov ecx, 0x47bfc0
jmp 0x4172f8
lea ecx, [esi + 2]
cmp ecx, edi
ja 0x4172f3
cmp byte [esi + eax], 0x30
jne 0x4172f3
mov dl, byte [esi + eax + 1]
cmp dl, 0x78
je 0x4172ed
cmp dl, 0x58
jne 0x4172f3
mov esi, ecx
mov dword [esp + 0x18], esi
mov ecx, 0x47bfc4
push ecx
push eax
call fcn.00450520
mov dword [esp + 0x30], eax
mov eax, 0x2e
mov word [esp + 0x1c], ax
call fcn.0045073e
mov ecx, dword [eax]
lea eax, [esp + 0x1c]
mov cl, byte [ecx]
push eax
push dword [ebp + 0x20]
mov byte [esp + 0x24], cl
call fcn.00450520
add esp, 0x10
mov dword [esp + 0x20], eax
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.0040d690
push eax
mov dword [esp + 0x78], 0
call fcn.0040fda0
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x74], 0xffffffff
call fcn.00406e80
mov eax, dword [esp + 0x1c]
push 0x30
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
movzx eax, ax
lea ecx, [esp + 0x13]
mov dword [esp + 0x24], eax
call fcn.004030b0
lea ecx, [esp + 0x38]
push eax
call fcn.004078e0
lea ecx, [esp + 0x38]
push 0
push 0
call fcn.00407e70
lea ecx, [esp + 0x38]
cmp edi, 0xffffffff
jne 0x4173a2
call fcn.00407b80
push 0
push edi
call fcn.00407f10
test al, al
je 0x4173c6
push 0
push edi
push 0
lea ecx, [esp + 0x44]
call fcn.00417d00
push edi
lea ecx, [esp + 0x3c]
call fcn.00408030
lea ecx, [esp + 0x38]
mov dword [esp + 0x74], 1
call fcn.00407a90
mov ecx, dword [ebp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
mov edx, dword [edx]
lea eax, [ecx + edi]
push eax
push ecx
mov ecx, dword [esp + 0x28]
call dword [edx + 0x2c]
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.0040d690
push eax
mov byte [esp + 0x78], 2
call fcn.004185b0
mov ebx, eax
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x74], 1
call fcn.00406e80
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
call fcn.00417c80
mov byte [esp + 0x74], 3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [esp + 0x28]
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
cmp eax, edi
jne 0x41745d
push dword [esp + 0x24]
mov eax, dword [ebp + 0x24]
push eax
lea ebx, [ecx + eax]
push ecx
lea ecx, [esp + 0x44]
call fcn.00417120
jmp 0x4174b8
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 0x24]
push esi
push dword [ebp + 0x2c]
lea ebx, [eax + edi]
push ecx
lea ecx, [esp + 0x44]
call fcn.00417120
mov eax, dword [esp + 0x20]
push esi
push dword [ebp + 0x28]
inc eax
push eax
lea ecx, [esp + 0x44]
call fcn.00417120
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [esp + 0x38]
movzx esi, ax
call fcn.00407a90
mov ecx, dword [esp + 0x20]
push dword [esp + 0x24]
mov word [eax + ecx*2], si
push edi
push ecx
lea ecx, [esp + 0x44]
call fcn.00417120
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x50]
call fcn.004083e0
mov edi, eax
mov al, byte [edi]
cmp al, 0x7f
je 0x417590
lea ecx, [ecx]
test al, al
jle 0x417590
movsx ecx, al
mov eax, ebx
sub eax, esi
cmp ecx, eax
jae 0x417590
sub ebx, ecx
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
jb 0x4175d6
or eax, 0xffffffff
sub eax, ecx
cmp eax, 1
jbe 0x4175cd
lea eax, [ecx + 1]
push 0
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x30], eax
call fcn.00407f10
test al, al
je 0x41757c
mov eax, dword [esp + 0x48]
sub eax, ebx
push eax
lea ecx, [esp + 0x3c]
lea esi, [ebx + ebx]
call fcn.00407a90
add eax, esi
push eax
lea ecx, [esp + 0x40]
call fcn.00407a90
add eax, 2
add eax, esi
push eax
call fcn.004079d0
mov eax, dword [esp + 0x3c]
movzx eax, ax
add esp, 0xc
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
call fcn.00407a90
add eax, esi
push eax
call fcn.00408010
add esp, 8
lea ecx, [esp + 0x38]
push dword [esp + 0x28]
call fcn.00408030
mov esi, dword [esp + 0x18]
cmp byte [edi + 1], 0
lea eax, [edi + 1]
cmovg edi, eax
mov al, byte [edi]
cmp al, 0x7f
jne 0x4174d0
lea ecx, [esp + 0x38]
call fcn.00407940
mov ebx, dword [ebp + 0x18]
mov edi, eax
mov ecx, ebx
mov dword [esp + 0x28], edi
call fcn.00409c50
test edx, edx
jl 0x4175df
jg 0x4175b3
test eax, eax
je 0x4175df
mov ecx, ebx
call fcn.00409c50
cmp eax, edi
jbe 0x4175df
mov ecx, ebx
call fcn.00409c50
mov edi, eax
sub edi, dword [esp + 0x28]
jmp 0x4175e1
lea ecx, [esp + 0x38]
call fcn.00407b80
lea ecx, [esp + 0x38]
call fcn.00407990
xor edi, edi
mov ecx, ebx
call fcn.00405b40
and eax, 0x1c0
cmp eax, 0x40
je 0x417675
cmp eax, 0x100
je 0x417630
mov ebx, dword [ebp + 8]
push edi
push dword [ebp + 0x1c]
lea eax, [esp + 0x38]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push ebx
call fcn.00417c10
mov ecx, dword [eax]
mov dword [ebp + 0x10], ecx
mov eax, dword [eax + 4]
add esp, 0x18
lea ecx, [esp + 0x38]
mov dword [ebp + 0x14], eax
xor edi, edi
call fcn.00407a90
jmp 0x417681
lea ecx, [esp + 0x38]
call fcn.00407a90
mov ebx, dword [ebp + 8]
push esi
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push ebx
call fcn.00417ba0
mov ecx, dword [eax]
push edi
push dword [ebp + 0x1c]
mov dword [ebp + 0x10], ecx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x14], ecx
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.00417c10
add esp, 0x30
xor edi, edi
jmp 0x417697
lea ecx, [esp + 0x38]
call fcn.00407a90
mov ebx, dword [ebp + 8]
push esi
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push ebx
call fcn.00417ba0
add esp, 0x18
mov ecx, dword [eax]
mov dword [ebp + 0x10], ecx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x38]
mov dword [ebp + 0x14], eax
call fcn.00407a90
mov ecx, dword [esp + 0x28]
sub ecx, esi
push ecx
lea eax, [eax + esi*2]
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push ebx
call fcn.00417ba0
mov edx, dword [eax]
mov ecx, dword [ebp + 0x18]
add esp, 0x18
mov dword [ebp + 0x10], edx
mov eax, dword [eax + 4]
push 0
push 0
mov dword [ebp + 0x14], eax
call fcn.00409c10
mov esi, dword [ebp + 0xc]
push edi
push dword [ebp + 0x1c]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push esi
push ebx
call fcn.00417c10
add esp, 0x18
lea ecx, [esp + 0x50]
call fcn.00408290
lea ecx, [esp + 0x38]
call fcn.00407890
mov ecx, dword [esp + 0x6c]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret