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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x46fbf0
push eax
mov dword fs:[0], esp
sub esp, 0x60
cmp dword [ebp + 0x30], 0
push ebx
push esi
mov esi, dword [ebp + 0x20]
push edi
jbe 0x41f61b
mov al, byte [esi]
cmp al, 0x2b
je 0x41f614
cmp al, 0x2d
jne 0x41f61b
mov ebx, 1
jmp 0x41f61d
xor ebx, ebx
mov edi, dword [ebp + 0x18]
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00405b40
and eax, 0x3000
cmp eax, 0x3000
je 0x41f63e
mov edx, 0x47bfc8
jmp 0x41f665
lea eax, [ebx + 2]
mov edx, 0x47bfcc
cmp eax, dword [ebp + 0x30]
ja 0x41f665
cmp byte [ebx + esi], 0x30
jne 0x41f665
mov cl, byte [ebx + esi + 1]
cmp cl, 0x78
je 0x41f65f
cmp cl, 0x58
jne 0x41f665
mov ebx, eax
mov dword [esp + 0x20], ebx
push edx
push esi
call fcn.00450520
mov dword [esp + 0x30], eax
mov eax, 0x2e
mov word [esp + 0x20], ax
call fcn.0045073e
mov ecx, dword [eax]
lea eax, [esp + 0x20]
mov cl, byte [ecx]
push eax
push esi
mov byte [esp + 0x28], cl
call fcn.00450520
add esp, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.0040d690
push eax
mov dword [esp + 0x78], 0
call fcn.0041ff30
add esp, 4
lea ecx, [esp + 0x2c]
mov esi, eax
mov dword [esp + 0x74], 0xffffffff
call fcn.00406e80
mov edx, dword [esi]
push 0x30
mov edx, dword [edx + 0x20]
mov ecx, esi
call edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], al
call fcn.004030b0
push eax
lea ecx, [esp + 0x3c]
call fcn.004078e0
push 0
push 0
lea ecx, [esp + 0x40]
call fcn.004087c0
push 0
push dword [ebp + 0x30]
lea ecx, [esp + 0x40]
call fcn.00417040
lea ecx, [esp + 0x38]
mov dword [esp + 0x74], 1
call fcn.004083e0
mov ecx, dword [ebp + 0x20]
mov edx, dword [esi]
push eax
mov eax, dword [ebp + 0x30]
add eax, ecx
push eax
push ecx
mov ecx, esi
call dword [edx + 0x1c]
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.0040d690
push eax
mov byte [esp + 0x78], 2
call fcn.00420440
mov esi, eax
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], esi
mov byte [esp + 0x74], 1
call fcn.00406e80
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00417c80
mov byte [esp + 0x74], 3
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x13], al
cmp ecx, dword [ebp + 0x30]
jne 0x41f799
push dword [esp + 0x24]
mov ecx, dword [ebp + 0x24]
mov eax, dword [esp + 0x2c]
push ecx
lea esi, [eax + ecx]
push eax
lea ecx, [esp + 0x44]
call fcn.0041f400
jmp 0x41f7f5
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x24]
push edi
push dword [ebp + 0x2c]
add esi, ecx
push dword [esp + 0x30]
lea ecx, [esp + 0x44]
call fcn.0041f400
mov eax, dword [esp + 0x1c]
push edi
push dword [ebp + 0x28]
inc eax
push eax
lea ecx, [esp + 0x44]
call fcn.0041f400
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea ecx, [esp + 0x38]
mov bl, al
call fcn.004083e0
mov ecx, dword [esp + 0x1c]
push edi
push dword [ebp + 0x24]
mov byte [eax + ecx], bl
push ecx
lea ecx, [esp + 0x44]
call fcn.0041f400
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x50]
call fcn.004083e0
mov edi, eax
mov al, byte [edi]
cmp al, 0x7f
je 0x41f8c4
lea ebx, [ebx]
test al, al
jle 0x41f8c4
movsx ecx, al
mov eax, esi
sub eax, ebx
cmp ecx, eax
jae 0x41f8c4
sub esi, ecx
mov ecx, dword [esp + 0x48]
cmp ecx, esi
jb 0x41f90a
or eax, 0xffffffff
sub eax, ecx
cmp eax, 1
jbe 0x41f901
lea eax, [ecx + 1]
push 0
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], eax
call fcn.00408860
test al, al
je 0x41f8b0
mov eax, dword [esp + 0x48]
sub eax, esi
push eax
lea ecx, [esp + 0x3c]
call fcn.004083e0
add eax, esi
push eax
lea ecx, [esp + 0x40]
call fcn.004083e0
inc eax
add eax, esi
push eax
call fcn.00408320
mov al, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x14], al
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x3c]
call fcn.004083e0
add eax, esi
push eax
call fcn.00408940
add esp, 8
lea ecx, [esp + 0x38]
push dword [esp + 0x30]
call fcn.00408950
cmp byte [edi + 1], 0
lea eax, [edi + 1]
cmovg edi, eax
mov al, byte [edi]
cmp al, 0x7f
jne 0x41f810
lea ecx, [esp + 0x38]
call fcn.00407940
mov edi, dword [ebp + 0x18]
mov esi, eax
mov ecx, edi
mov dword [esp + 0x28], esi
call fcn.00409c50
test edx, edx
jl 0x41f913
jg 0x41f8e7
test eax, eax
je 0x41f913
mov ecx, edi
call fcn.00409c50
cmp eax, esi
jbe 0x41f913
mov ecx, edi
call fcn.00409c50
mov esi, eax
sub esi, dword [esp + 0x28]
jmp 0x41f915
lea ecx, [esp + 0x38]
call fcn.00407b80
lea ecx, [esp + 0x38]
call fcn.00407990
xor esi, esi
mov ecx, edi
call fcn.00405b40
and eax, 0x1c0
cmp eax, 0x40
je 0x41f9a5
cmp eax, 0x100
je 0x41f960
mov edi, dword [ebp + 8]
push esi
push dword [ebp + 0x1c]
lea eax, [esp + 0x38]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0041fe70
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 esi, esi
call fcn.004083e0
jmp 0x41f9b1
lea ecx, [esp + 0x38]
call fcn.004083e0
mov edi, dword [ebp + 8]
push ebx
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0041fdf0
mov ecx, dword [eax]
push esi
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 edi
call fcn.0041fe70
add esp, 0x30
xor esi, esi
jmp 0x41f9c7
lea ecx, [esp + 0x38]
call fcn.004083e0
mov edi, dword [ebp + 8]
push ebx
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0041fdf0
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.004083e0
mov ecx, dword [esp + 0x28]
sub ecx, ebx
push ecx
add eax, ebx
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x3c]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0041fdf0
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
push esi
push dword [ebp + 0x1c]
mov esi, dword [ebp + 0xc]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push esi
push edi
call fcn.0041fe70
add esp, 0x18
lea ecx, [esp + 0x50]
call fcn.00408290
lea ecx, [esp + 0x38]
call fcn.00408290
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