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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x3c], 2
push ebx
mov ebx, dword [ebp + 0x20]
push esi
push edi
je 0x417bc6
cmp dword [ebp + 0x14], 0
jne 0x417bc6
mov esi, 0xc000000d
jmp 0x417d5f
cmp dword [edx + 0x3c], 4
jne 0x417bd2
cmp dword [ebp + 0x18], 0
je 0x417bbc
push 0x80
push 0
push ebx
call fcn.0049cd10
or dword [ebx + 0x4c], 0xffffffff
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x3c]
mov dword [ebx + 0x60], eax
mov eax, dword [ecx + 0x30]
mov dword [ebx + 0x20], eax
mov eax, dword [ecx + 0x34]
mov edx, dword [ebp + 8]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx + 0x28]
mov dword [ebx + 0x18], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 0x1c], eax
lea esi, [ecx + 0x44]
lea edi, [ebx + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [edx + 8]
mov dword [ebx + 0x4c], eax
mov al, byte [ebp + 0x1c]
mov byte [ebx + 0x7c], al
mov eax, dword [ecx + 0x3c]
add esp, 0xc
cmp eax, 2
je 0x417d1c
add eax, 0xfffffffd
cmp eax, 1
ja 0x417d15
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x20]
xor esi, esi
push esi
push eax
push esi
push dword [edi + 0x1c]
mov dword [ebp + 0x1c], eax
call fcn.0049adb0
mov ecx, dword [ebp + 0x1c]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x2c], edx
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x54], eax
mov eax, ecx
shr eax, 9
lea ecx, [eax + 7]
and ecx, 0xfffffff8
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x78], 0x200
cmp ecx, eax
jae 0x417c83
mov esi, 0xc0000095
jmp 0x417d5f
shr ecx, 3
lea eax, [ecx + 0x1ff]
and eax, 0xfffffe00
mov dword [ebp + 0x20], eax
mov dword [ebx + 0x5c], eax
cmp eax, ecx
jb 0x417c79
mov eax, dword [edi + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [ebx + 0x38], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x3c], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x48], eax
mov eax, esi
mov ecx, esi
cmp dword [edi + 0x1c], eax
jbe 0x417cdf
mov edx, dword [ebp + 0x14]
cmp dword [edx + eax*4], 0xffffffff
je 0x417cd6
cmp dword [edx + eax*4], ecx
jbe 0x417cd6
mov ecx, dword [edx + eax*4]
inc eax
cmp eax, dword [edi + 0x1c]
jb 0x417cc8
mov edx, dword [ebp + 0xc]
xor eax, eax
shld eax, ecx, 9
shl ecx, 9
add ecx, dword [ebp + 0x20]
adc eax, esi
add ecx, dword [ebp + 0x1c]
adc eax, esi
add ecx, 0xffffffff
adc eax, 0xffffffff
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], eax
cmp dword [edx + 0x3c], 4
jne 0x417d5f
mov eax, dword [ebp + 0x18]
lea esi, [edi + 0x28]
mov dword [ebx], eax
lea edi, [ebx + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x417d5d
mov esi, 0xc00000bb
jmp 0x417d5f
mov esi, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
add esi, 0xfffffe00
adc edx, 0xffffffff
mov ecx, esi
add ecx, 0xffffffff
mov eax, edx
adc eax, 0xffffffff
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], esi
shrd esi, edx, 0x15
mov dword [ebx + 0x44], eax
mov eax, 0x200
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x50], 0x200000
shr edx, 0x15
mov dword [ebx + 0x54], esi
mov dword [ebx + 0x78], eax
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 0x1c