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

Disassembly:
sub esp, 0x60
mov dword [esp + 0x14], edx
xorps xmm0, xmm0
mov edx, dword [esp + 0x64]
push ebx
push ebp
mov ebp, ecx
movlpd qword [esp + 0x58], xmm0
mov eax, dword [edx]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
push esi
push edi
mov dword [esp + 0x28], ebp
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
movlpd qword [esp + 0x58], xmm0
test eax, eax
jb 0x41bc84
ja 0x41b9ae
test ecx, ecx
je 0x41bc84
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], edx
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x41bc1e
cmp dword [esp + 0x3c], esi
jb 0x41bc12
ja 0x41b9ef
cmp dword [esp + 0x40], ebx
jbe 0x41bc12
mov ebx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [ebp + 4]
test ebx, ebx
je 0x41ba2a
test eax, eax
je 0x41ba21
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
mov ecx, dword [ebp + 0x34]
mov ax, word [ebx + edx*2]
mov word [ecx + edx*2], ax
inc edx
mov eax, dword [ebp + 4]
cmp edx, eax
jb 0x41ba00
lea ebx, [ebx + eax*2]
mov dword [esp + 0x24], ebx
jmp 0x41ba4b
test eax, eax
je 0x41ba4b
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
xor ecx, ecx
mov eax, dword [ebp + 0x34]
mov word [eax + edx*2], cx
inc edx
cmp edx, dword [ebp + 4]
jb 0x41ba2e
mov edi, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x14], edi
call fcn.00420bfb
imul eax, dword [ebp + 0x3c]
push eax
push edi
push edi
call fcn.00449aa0
xor ebx, ebx
add esp, 0xc
mov dword [esp + 0x18], ebx
cmp dword [ebp + 0x44], ebx
jbe 0x41bae3
xor edi, edi
mov edx, dword [ebp + 0x4c]
mov eax, 0x4000
add edx, edi
mov esi, dword [edx + 8]
sub eax, esi
mov ecx, dword [edx + 4]
mov dword [esp + 0x44], esi
xor esi, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x41bad2
mov ebp, dword [esp + 0x14]
mov ebx, ecx
mov eax, dword [edx + 0xc]
movsx ecx, word [ebp + esi*2]
imul ecx, dword [esp + 0x2c]
mov eax, dword [eax + esi*4]
imul eax, dword [esp + 0x44]
add ecx, eax
sar ecx, 0xe
mov word [ebp + esi*2], cx
mov eax, dword [edx + 0xc]
mov dword [eax + esi*4], ecx
inc esi
cmp esi, ebx
jb 0x41baa0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
inc ebx
add edi, 0x18
mov dword [esp + 0x18], ebx
cmp ebx, dword [ebp + 0x44]
jb 0x41ba76
mov esi, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [ebp + 0x48], ecx
jbe 0x41bbf1
xor edx, edx
mov dword [esp + 0x30], edx
mov eax, dword [ebp + 0x50]
and dword [esp + 0x18], 0
add eax, edx
mov dword [esp + 0x44], eax
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov esi, dword [eax + 8]
mov dword [esp + 0x4c], edi
mov edi, dword [eax + 0x10]
mov dword [esp + 0x54], edi
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], esi
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x41bbd8
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
movsx ebx, word [edi + edx*2]
mov eax, dword [ebp + 0x1c]
mov ecx, ebx
imul ecx, esi
mov edi, dword [eax + edx*4]
mov eax, dword [ebp + 0x20]
add edi, ecx
sar edi, 0xe
mov ecx, edi
mov esi, dword [eax + edx*4]
mov eax, ebx
imul ecx, dword [esp + 0x48]
imul eax, dword [esp + 0x4c]
sub esi, ecx
add esi, eax
mov eax, 0x7fff
cmp edi, eax
mov edx, eax
mov ecx, eax
movzx eax, di
cmovl edx, edi
cmp edi, ecx
cmovl ecx, eax
movzx eax, cx
mov ecx, 0xffff8000
cmp edx, ecx
mov edx, dword [esp + 0x18]
cmovl eax, ecx
mov ecx, dword [esp + 0x14]
imul edi, dword [esp + 0x50]
imul ebx, dword [esp + 0x54]
mov word [ecx + edx*2], ax
mov eax, dword [ebp + 0x1c]
sub ebx, edi
mov edi, ecx
mov dword [eax + edx*4], esi
mov eax, dword [ebp + 0x20]
mov esi, dword [esp + 0x60]
mov dword [eax + edx*4], ebx
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x58]
jb 0x41bb44
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
inc ecx
add edx, 0x2c
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
cmp ecx, dword [ebp + 0x48]
jb 0x41baf8
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov eax, dword [ebp + 0x28]
add ebx, 1
mov dword [esp + 0x34], ebx
adc esi, 0
sub eax, 1
mov dword [esp + 0x1c], esi
mov dword [ebp + 0x28], eax
jne 0x41b9d9
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x41bc94
mov eax, dword [esp + 0x78]
test eax, eax
je 0x41bc41
mov edx, eax
mov ecx, ebp
call fcn.0041b899
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0x20]
add edx, 1
mov dword [esp + 0x20], edx
adc edi, 0
add dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x2c]
add eax, dword [ebp + 0x24]
mov dword [esp + 0x38], edi
mov dword [ebp + 0x2c], eax
cmp eax, dword [ebp + 0xc]
jb 0x41bc6c
sub eax, dword [ebp + 0xc]
inc dword [ebp + 0x28]
mov dword [ebp + 0x2c], eax
cmp edi, dword [esp + 0x68]
jb 0x41b9ce
ja 0x41bc94
cmp edx, dword [esp + 0x6c]
jb 0x41b9ce
jmp 0x41bc94
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x74]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov eax, dword [esp + 0x7c]
mov dword [eax + 4], edi
pop edi
pop esi
pop ebp
mov dword [eax], edx
xor eax, eax
pop ebx
add esp, 0x60
ret