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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x1c
mov ebx, ecx
xor edi, edi
mov dword [ebx + 0x74], edi
lea ebp, [ebx + 0x3c]
mov dword [ebx + 0x78], edi
inc dword [ebp + 0x20]
mov eax, dword [ebp]
test eax, eax
je 0x41f3c4
mov ecx, dword [ebp + 8]
test ecx, ecx
jbe 0x41f3c4
mov edx, edi
mov dword [esp + 0x10], ebx
mov esi, edx
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x41f3bb
mov eax, ebx
mov ecx, ebp
push eax
mov ebx, dword [ebx + 8]
call fcn.00411450
test ebx, ebx
jne 0x41f3a4
mov eax, dword [ebp]
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jb 0x41f39d
mov ebx, dword [esp + 0x10]
push eax
call fcn.0042591f
add esp, 4
mov edx, dword [ebp + 0x20]
test edx, edx
mov dword [ebp], edi
mov dword [ebp + 4], edi
je 0x41f685
mov eax, dword [ebp + 0x28]
test eax, eax
mov dword [ebp + 0x2c], 0
je 0x41f410
mov dword [esp + 0x10], ebx
mov ebx, edx
push eax
mov esi, dword [eax]
call fcn.0042592a
add esp, 4
mov eax, esi
test esi, esi
jne 0x41f3f2
mov dword [ebp + 0x28], 0
mov edx, ebx
mov ebx, dword [esp + 0x10]
dec edx
mov dword [ebp + 0x20], edx
mov eax, dword [ebx + 0x24]
cmp dword [ebx + 0x2c], 0
jle 0x41f4fb
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov ebx, eax
test ebx, ebx
je 0x41f5f9
mov edx, ebx
mov ebx, dword [ebx]
mov ebp, dword [edx + 8]
mov dword [ebp], edi
cmp dword [ebp + 0x28], 0
jne 0x41f4a5
add esp, 0xfffffff0
mov ecx, esp
mov edx, dword [0x4460a0]
mov esi, dword [ebp + 0xc]
test esi, esi
mov dword [esp + 0x1c], ecx
mov dword [ecx], edx
je 0x41f484
test esi, 0xffff0000
jne 0x41f46e
movzx edx, si
push edx
call fcn.0041fac0
jmp 0x41f484
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
jne 0x41f60d
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0xc], edx
call fcn.0041fe80
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x10]
mov eax, edi
mov ecx, dword [esp + 0x14]
inc dword [edx + 0x74]
mov esi, dword [ebp + 4]
add dword [edx + 0x78], esi
xor edx, edx
mov esi, dword [ecx + 8]
div esi
mov dword [esp + 0x18], esi
mov esi, edx
mov edx, dword [ecx]
test edx, edx
je 0x41f50c
mov edx, dword [edx + esi*4]
test edx, edx
je 0x41f4de
cmp edi, dword [edx + 0xc]
je 0x41f503
mov edx, dword [edx + 8]
test edx, edx
jne 0x41f4d2
push edi
push esi
push edi
mov ecx, dword [esp + 0x20]
call fcn.0041f780
mov dword [eax + 4], ebp
mov edx, dword [esp + 0x10]
inc edi
cmp edi, dword [edx + 0x2c]
jl 0x41f42b
add esp, 0x1c
pop ebp
pop ebx
pop edi
pop esi
ret
cmp edi, dword [edx]
jne 0x41f4d7
mov dword [edx + 4], ebp
jmp 0x41f4ed
mov edx, dword [esp + 0x18]
lea ecx, [edx*4]
mov dword [esp], ecx
push ecx
call fcn.00423acb
add esp, 4
mov edx, dword [esp + 0x14]
test eax, eax
mov dword [edx], eax
je 0x41f603
cmp dword [esp + 0x18], 0x3fffffff
ja 0x41f5f9
push dword [esp]
push 0
push eax
call fcn.00435e10
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, SysReAllocStringLen
mov ecx, dword [esp + 0x18]
cvtsi2sd xmm0, ecx
mov dword [edx + 8], ecx
shr ecx, 0x1f
movss xmm3, dword [edx + 0x14]
movss xmm4, dword [0x439828]
movaps xmm2, xmm4
movaps xmm6, xmm4
mov dword [esp + 4], esi
addsd xmm0, qword [ecx*8 + 0x439730]
cvtsd2ss xmm0, xmm0
mulss xmm3, xmm0
mulss xmm0, dword [edx + 0x10]
cmpless xmm2, xmm3
cmpless xmm6, xmm0
andps xmm2, xmm4
movaps xmm1, xmm3
andps xmm6, xmm4
movaps xmm5, xmm0
subss xmm3, xmm2
cmpnltss xmm1, xmm4
subss xmm0, xmm6
cmpnltss xmm5, xmm4
cvttss2si ecx, xmm3
movd esi, xmm1
and esi, eax
add ecx, esi
mov dword [edx + 0x18], ecx
cvttss2si ecx, xmm0
movd edx, xmm5
and edx, eax
add ecx, edx
mov esi, dword [esp + 4]
cmp ecx, 0x11
jae 0x41f5ed
mov edx, dword [esp + 0x14]
mov dword [edx + 0x1c], 0
jmp 0x41f4de
mov edx, dword [esp + 0x14]
mov dword [edx + 0x1c], ecx
jmp 0x41f4de
push 0x80004005
call fcn.0041fe50
push 0x8007000e
call fcn.0041fe50
mov edx, eax
lea ecx, [edx + 0xd]
push ecx
call fcn.00423acb
add esp, 4
test eax, eax
je 0x41f484
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push edx
mov dword [eax], 1
mov byte [eax + edx + 0xc], 0
mov dword [eax + 4], edx
mov dword [eax + 8], edx
add eax, 0xc
mov dword [ecx], eax
lea ecx, [edx + 1]
push esi
push ecx
push eax
call fcn.00425302
add esp, 0x10
cmp eax, 0x22
ja case.0x41f65c.11
mov edx, dword [eax*4 + 0x43a2a0]
jmp edx
push 0x80070057
call fcn.0041fe50
push 0x8007000e
call fcn.0041fe50
cmp eax, 0x50
je 0x41f484
push 0x80004005
call fcn.0041fe50
movss xmm0, dword [0x439828]
pxor xmm3, xmm3
movaps xmm2, xmm0
divss xmm3, dword [ebp + 0xc]
movaps xmm1, xmm3
cmpless xmm2, xmm3
cmpnltss xmm1, xmm0
andps xmm2, xmm0
movd eax, xmm1
subss xmm3, xmm2
cvttss2si ecx, xmm3
and eax, 0x80000000
add ecx, eax
mov eax, edi
cmp ecx, 0x11
jbe 0x41f76d
mov esi, eax
inc esi
mov eax, dword [esi*4 + 0x44ea60]
cmp ecx, eax
ja 0x41f6c9
cmp eax, 0xffffffff
movaps xmm3, xmm0
movss xmm4, dword [ebp + 0x14]
movaps xmm6, xmm0
cmovne ecx, eax
mov eax, SysReAllocStringLen
cvtsi2sd xmm1, ecx
mov dword [ebp + 8], ecx
shr ecx, 0x1f
mov dword [esp], edx
addsd xmm1, qword [ecx*8 + 0x439730]
cvtsd2ss xmm1, xmm1
mulss xmm4, xmm1
mulss xmm1, dword [ebp + 0x10]
cmpless xmm3, xmm4
cmpless xmm6, xmm1
andps xmm3, xmm0
movaps xmm2, xmm4
movaps xmm5, xmm1
andps xmm6, xmm0
subss xmm4, xmm3
cmpnltss xmm2, xmm0
cmpnltss xmm5, xmm0
subss xmm1, xmm6
cvttss2si ecx, xmm4
movd edx, xmm2
and edx, eax
add ecx, edx
movd edx, xmm5
and edx, eax
cvttss2si eax, xmm1
add eax, edx
mov dword [ebp + 0x18], ecx
cmp eax, 0x11
mov edx, dword [esp]
jae 0x41f765
mov dword [ebp + 0x1c], 0
jmp 0x41f3de
mov dword [ebp + 0x1c], eax
jmp 0x41f3de
mov eax, 0x11
jmp 0x41f6d5