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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x128
mov esi, dword [edx + 0x30]
test esi, esi
je 0x41c30b
lea edi, [edx + 0x28]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov edx, esi
mov ecx, dword [edi]
push 1
push 0x46012f
call fcn.00405c56
pop ecx
pop ecx
mov ecx, eax
push 0x45ac70
call fcn.00406670
pop ecx
add esi, 0xfffffffe
mov ecx, edi
mov edx, eax
push esi
call fcn.00402d25
pop ecx
mov esi, edx
lea ebx, [esp + 0xd0]
mov edx, eax
mov ecx, ebx
push 0x460130
push esi
call fcn.00405c93
pop eax
pop ecx
push 0x14
pop ecx
lea eax, [esp + 0x78]
mov esi, ebx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
and dword [eax + 0x50], 0
push 4
pop eax
xor esi, esi
lea edi, [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp + 0x18], 0
inc esi
mov dword [esp], eax
lea ecx, [esp + 0x78]
call fcn.0040f41f
test eax, eax
je 0x41c329
mov ecx, dword [esp + 0xc8]
xor ebx, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], ecx
inc ecx
mov dword [esp + 0xc8], ecx
mov ecx, eax
add ecx, edx
mov dword [esp + 0x2c], ecx
mov ecx, edi
call fcn.0040b13b
cmp eax, 0x110000
je 0x41c15c
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
jae 0x41bee6
test ebx, ebx
sete cl
mov edx, ecx
xor dl, 1
movzx edx, dl
add dword [esp + 0x24], edx
test cl, cl
cmovne ebx, esi
mov cl, 1
cmp eax, 0x20
je 0x41bed8
cmp eax, 0x29
je 0x41bed8
xor ecx, ecx
cmp ebx, 1
jne 0x41be95
test cl, cl
je 0x41be95
jmp 0x41c15c
cmp eax, 0x80
jb 0x41c119
mov ecx, eax
shl eax, 0xb
mov dword [esp + 0x20], ecx
cmp ecx, 0x16800
push 0x1a
pop ecx
mov edx, 0
mov dword [esp + 0x50], eax
cmovb ecx, edx
mov edi, dword [ecx*4 + 0x45eda8]
lea esi, [ecx + 0xd]
shl edi, 0xb
cmp edi, eax
cmova esi, ecx
mov edi, dword [esi*4 + 0x45ed8c]
lea ecx, [esi + 6]
shl edi, 0xb
cmp edi, eax
cmova ecx, esi
mov edi, dword [ecx*4 + 0x45ed80]
lea esi, [ecx + 3]
shl edi, 0xb
cmp edi, eax
cmova esi, ecx
mov edi, dword [esi*4 + 0x45ed7c]
lea ecx, [esi + 2]
shl edi, 0xb
cmp edi, eax
cmova ecx, esi
mov edi, dword [ecx*4 + 0x45ed78]
lea esi, [ecx + 1]
shl edi, 0xb
cmp edi, eax
cmova esi, ecx
xor ecx, ecx
mov edi, dword [esi*4 + 0x45ed74]
shl edi, 0xb
cmp edi, eax
sete cl
adc ecx, 0
add ecx, esi
cmp ecx, 0x33
ja 0x41c36d
mov edi, 0x56f
cmp ecx, 0x33
mov dword [esp + 8], ebx
je 0x41bfa0
mov edi, dword [ecx*4 + 0x45ed78]
shr edi, 0x15
mov eax, dword [esp + 0x20]
mov ebx, ecx
xor esi, esi
sub ebx, 1
jb 0x41bfc4
cmp ebx, 0x34
jae 0x41c372
mov esi, dword [ebx*4 + 0x45ed74]
mov edx, 0x1fffff
and esi, edx
mov ecx, dword [ecx*4 + 0x45ed74]
shr ecx, 0x15
lea ebx, [ecx + 1]
cmp edi, ebx
je 0x41bffc
mov ebx, eax
dec edi
sub ebx, esi
xor esi, esi
cmp ecx, 0x56e
ja 0x41c354
movzx edx, byte [ecx + 0x45ee44]
add esi, edx
cmp esi, ebx
ja 0x41bffc
inc ecx
cmp edi, ecx
jne 0x41bfdc
mov ecx, edi
mov ebx, dword [esp + 8]
test cl, 1
lea edi, [esp + 0x28]
mov esi, 1
jne 0x41beb4
cmp eax, 0x10cfa
push 0x13
pop ecx
mov edx, 0
mov eax, dword [esp + 0x50]
cmovb ecx, edx
mov esi, dword [ecx*4 + 0x45f3d8]
lea edx, [ecx + 9]
shl esi, 0xb
cmp esi, eax
cmova edx, ecx
mov esi, dword [edx*4 + 0x45f3c8]
lea ecx, [edx + 5]
shl esi, 0xb
cmp esi, eax
cmova ecx, edx
mov esi, dword [ecx*4 + 0x45f3bc]
lea edx, [ecx + 2]
shl esi, 0xb
cmp esi, eax
cmova edx, ecx
mov esi, dword [edx*4 + 0x45f3b8]
lea ecx, [edx + 1]
shl esi, 0xb
cmp esi, eax
cmova ecx, edx
mov esi, dword [ecx*4 + 0x45f3b8]
lea edx, [ecx + 1]
shl esi, 0xb
cmp esi, eax
cmova edx, ecx
xor ecx, ecx
mov esi, dword [edx*4 + 0x45f3b4]
shl esi, 0xb
cmp esi, eax
sete cl
adc ecx, 0
add ecx, edx
cmp ecx, 0x25
ja 0x41c377
mov edx, 0x10b
cmp ecx, 0x25
je 0x41c0b3
mov edx, dword [ecx*4 + 0x45f3b8]
shr edx, 0x15
mov eax, dword [esp + 0x20]
mov ebx, ecx
xor esi, esi
sub ebx, 1
jb 0x41c0d7
cmp ebx, 0x26
jae 0x41c381
mov esi, dword [ebx*4 + 0x45f3b4]
mov edi, 0x1fffff
and esi, edi
mov ecx, dword [ecx*4 + 0x45f3b4]
mov ebx, dword [esp + 8]
shr ecx, 0x15
lea edi, [ecx + 1]
cmp edx, edi
je 0x41c139
mov edi, eax
dec edx
sub edi, esi
xor esi, esi
cmp ecx, 0x10a
ja 0x41c35b
movzx ebx, byte [ecx + 0x45f44c]
add esi, ebx
cmp esi, edi
ja 0x41c135
mov ebx, dword [esp + 8]
inc ecx
cmp edx, ecx
jne 0x41c0f3
mov ecx, edx
jmp 0x41c139
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jb 0x41beb4
test ebx, ebx
sete cl
cmp eax, 0x5f
je 0x41beb9
jmp 0x41c150
mov ebx, dword [esp + 8]
test cl, 1
lea edi, [esp + 0x28]
mov esi, 1
jne 0x41beb4
test ebx, ebx
sete cl
movzx ecx, cl
add dword [esp + 0x1c], ecx
jmp 0x41beca
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add edx, ecx
cmp edx, 0xffffffff
je 0x41c38d
inc edx
push dword [esp + 0x48]
push dword [esp + 0x50]
call fcn.00405cbc
pop ecx
pop ecx
mov esi, edx
lea ecx, [esp + 0x54]
mov edx, eax
push esi
call fcn.0043571c
pop eax
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0xc]
push dword [esp + 0x5c]
call fcn.0040a77a
pop eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x41c1c4
mov dl, byte [eax]
mov dh, dl
add dh, 0xbf
cmp dh, 0x1a
setb dh
dec ecx
shl dh, 5
or dh, dl
mov byte [eax], dh
inc eax
jmp 0x41c1a8
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
mov ecx, 0xffffa600
mov dword [esp + 0x38], eax
lea eax, [0x43d849]
movsd qword [esp + 0x30], xmm0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add eax, ecx
lea ecx, [0x45abce]
push ecx
push 6
pop ebx
push ebx
lea esi, [esp + 0x14]
push esi
call eax
add esp, 0xc
lea ecx, [esp + 0x30]
mov edx, esi
push ebx
call fcn.0040b252
pop ecx
test al, al
jne 0x41c317
mov edx, dword [esp + 4]
movsd xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0x38]
cmp edx, dword [esp + 0x18]
movsd qword [esp + 0x60], xmm0
mov dword [esp + 0x68], eax
jne 0x41c2c0
mov eax, edx
inc eax
je 0x41c394
lea ecx, [edx + edx]
cmp ecx, eax
cmova eax, ecx
push 4
pop ecx
cmp eax, ecx
cmovbe eax, ecx
xor esi, esi
push 0x10
pop ecx
mul ecx
mov ecx, eax
jo 0x41c267
push 4
pop edx
call fcn.00406437
mov esi, edx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x41c287
mov edx, dword [esp]
shl ecx, 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 4
jmp 0x41c28c
and dword [esp + 0xc], 0
mov edx, eax
lea eax, [esp + 0xc]
lea ecx, [esp + 0x6c]
push eax
push esi
call fcn.00435478
pop eax
pop ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x6c], 1
mov dword [esp], eax
je 0x41c398
shr edx, 4
mov dword [esp + 0x18], edx
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp]
mov eax, edx
xor esi, esi
inc edx
shl eax, 4
inc esi
mov dword [esp + 4], edx
mov dword [ebx + eax + 8], ecx
mov ecx, dword [esp + 0x44]
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx + eax], xmm0
mov byte [ebx + eax + 0xc], cl
movzx ecx, word [esp + 0xc]
mov word [ebx + eax + 0xd], cx
mov cl, byte [esp + 0xe]
mov byte [ebx + eax + 0xf], cl
lea ecx, [esp + 0x54]
call fcn.00435706
jmp 0x41be4b
and dword [ecx], 0
mov ecx, edx
call fcn.004055cc
jmp 0x41c34c
lea ecx, [esp + 0x30]
call fcn.00435706
lea ecx, [esp + 0x54]
call fcn.00435706
mov edi, dword [esp + 0x3c]
mov eax, dword [esp]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 4]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], edx
add edi, 0xc
push 0xd
pop ecx
mov esi, dword [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x56f
jmp 0x41c360
mov edx, 0x10b
push 0x45e948
call fcn.00430940
pop eax
ud2
push 0x34
pop edx
jmp 0x41c37a
push 0x34
pop edx
jmp 0x41c384
push 0x26
pop edx
push 0x45e938
jmp 0x41c365
push 0x26
pop edx
mov ecx, ebx
push 0x45e674
jmp 0x41c365
call fcn.00434300
ud2
xor edx, edx
jmp 0x41c39b
mov eax, dword [esp]
test edx, edx
jne 0x41c3a6
call fcn.0042e8c0
ud2
mov ecx, eax
call fcn.0042e8b0
ud2