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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x80
mov esi, edx
call fcn.00414100
mov ebp, eax
mov ebx, edx
mov eax, ebp
or eax, ebx
je 0x4142b6
push 0
lea ecx, [esp + 4]
call fcn.0040f5a8
push 0x40
lea ecx, [esp + 4]
call fcn.0040f84c
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
push 0x40
pop ecx
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
call fcn.00414628
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
mov edi, dword [eax + 0x3c]
mov eax, edi
push 0x108
cdq
add edi, ebp
lea ecx, [esp + 4]
adc edx, ebx
mov dword [ecx + 0x10], edx
call fcn.0040f84c
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
mov ecx, 0x108
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xc], edi
call fcn.00414628
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
mov edi, dword [eax + 0x8c]
test edi, edi
jne 0x4142bd
lea ecx, [esp]
call fcn.0040f678
xor eax, eax
jmp 0x41461b
mov eax, dword [eax + 0x88]
mov edx, ebx
push edi
add eax, ebp
lea ecx, [esp + 4]
mov dword [ecx + 0x10], eax
adc edx, 0
mov dword [ecx + 0x14], edx
call fcn.0040f84c
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
mov ecx, edi
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
call fcn.00414628
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
mov dword [esp + 0x10], eax
push 0
lea ecx, [esp + 0x2c]
call fcn.0040f5a8
push 0
lea ecx, [esp + 0x3c]
call fcn.0040f5a8
push 0
lea ecx, [esp + 0x4c]
call fcn.0040f5a8
push 0
lea ecx, [esp + 0x18]
call fcn.0040f5a8
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
shl edx, 2
mov edi, dword [eax + 0x1c]
add edi, ebp
mov dword [esp + 0x58], edi
mov edi, ebx
mov dword [esp + 0x24], edx
adc edi, 0
push edx
lea ecx, [esp + 0x2c]
call fcn.0040f84c
push 0
lea ecx, [esp + 0x2c]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x34]
call fcn.00414628
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
add edx, edx
mov edi, dword [eax + 0x24]
add edi, ebp
mov dword [esp + 0x58], edi
mov edi, ebx
mov dword [esp + 0x24], edx
adc edi, 0
push edx
lea ecx, [esp + 0x3c]
call fcn.0040f84c
push 0
lea ecx, [esp + 0x3c]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x34]
call fcn.00414628
mov edx, dword [esp + 0x10]
mov eax, ebx
mov edi, dword [edx + 0x20]
add edi, ebp
adc eax, 0
mov dword [esp + 0x58], eax
mov eax, dword [edx + 0x14]
shl eax, 2
mov dword [esp + 0x24], eax
push eax
lea ecx, [esp + 0x4c]
call fcn.0040f84c
push 0
lea ecx, [esp + 0x4c]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x34]
call fcn.00414628
push 0
lea ecx, [esp + 0x2c]
call fcn.0040f4e0
mov dword [esp + 0x6c], eax
push 0
lea ecx, [esp + 0x3c]
call fcn.0040f4e0
mov dword [esp + 0x68], eax
push 0
lea ecx, [esp + 0x4c]
call fcn.0040f4e0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x5c], edx
cmp dword [eax + 0x14], 0
jbe 0x4145eb
mov dword [esp + 0x24], 0
lea eax, [esi + 4]
mov dword [esp + 0x58], eax
push 0x80
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov edi, dword [eax + edx*4]
add edi, ebp
mov dword [ecx + 0x60], edi
mov edi, ebx
adc edi, 0
call fcn.0040f84c
push 0
lea ecx, [esp + 0x18]
call fcn.0040f4e0
cdq
add esp, 0xfffffff0
movd xmm1, eax
mov ecx, 0x80
movd xmm0, edx
punpckldq xmm1, xmm0
movq qword [esp], xmm1
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
call fcn.00414628
push 0
lea ecx, [esp + 0x18]
call fcn.0040f4e0
mov edi, eax
push 0
lea ecx, [esp + 0x18]
call fcn.0040f4e0
mov ecx, eax
mov edx, 0x80
call fcn.0040e8d4
mov ecx, edi
mov edx, eax
call fcn.00414fd4
mov dword [esp + 0x64], eax
xor dword [esp + 0x64], 0x7af3da47
mov edx, dword [esi]
test edx, edx
jle 0x4145cf
xor edi, edi
mov dword [esp + 0x60], edi
push edi
mov ecx, dword [esp + 0x5c]
call fcn.0040f4e0
mov edx, dword [eax + 8]
or edx, dword [eax + 0xc]
jne 0x414576
push edi
mov ecx, dword [esp + 0x5c]
call fcn.0040f4e0
mov edx, eax
mov eax, dword [esp + 0x64]
cmp eax, dword [edx]
je 0x41458a
mov eax, dword [esp + 0x60]
add edi, 0x10
inc eax
mov edx, dword [esi]
mov dword [esp + 0x60], eax
cmp eax, edx
jl 0x414550
jmp 0x4145cf
push edi
mov eax, dword [esp + 0x6c]
mov ecx, ebx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x70]
movzx eax, word [eax + edx*2]
mov edx, dword [edi + eax*4]
add edx, ebp
mov dword [esp + 0x7c], edx
adc ecx, 0
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x5c]
call fcn.0040f4e0
mov ecx, eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
inc dword [esp + 0x5c]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov edx, dword [esi]
cmp edx, dword [esp + 0x5c]
je 0x4145eb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [edx + 0x14]
jb 0x4144ac
lea ecx, [esp + 0x14]
call fcn.0040f678
lea ecx, [esp + 0x48]
call fcn.0040f678
lea ecx, [esp + 0x38]
call fcn.0040f678
lea ecx, [esp + 0x28]
call fcn.0040f678
lea ecx, [esp]
call fcn.0040f678
mov eax, dword [esp + 0x5c]
add esp, 0x80
pop ebp
pop ebx
pop edi
pop esi
ret