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

Disassembly:
sub esp, 0x48
mov eax, dword [esp + 0x4c]
xorps xmm0, xmm0
push ebx
push ebp
movlpd qword [esp + 0x3c], xmm0
mov ecx, dword [esp + 0x40]
push esi
movlpd qword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x38]
movlpd qword [esp + 0x48], xmm0
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x54], 8
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x407ee4
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
inc eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], eax
test cl, cl
js 0x407fa2
and ecx, 7
add esi, ecx
mov ecx, esi
mov dword [esp + 0x14], esi
cmp ecx, dword [esp + 0x64]
ja case.0x408053.255
cmp ecx, dword [esp + 0x60]
jbe 0x407f1f
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
jmp 0x407ee4
mov ecx, dword [esp + 0x44]
mov esi, 1
shr ecx, 3
and ecx, 7
shl esi, cl
test byte [esp + 0x44], 0x40
je 0x407f74
or dword [esp + 0x30], esi
cmp byte [esp + 0x13], 0
mov ebp, dword [esp + 0x2c]
cmovne ebp, ecx
mov byte [esp + 0x13], 0
or esi, dword [esp + 0x34]
cmp byte [esp + 0x12], 0
mov dword [esp + 0x2c], ebp
cmove esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x14]
mov byte [esp + 0x12], 0
jmp 0x407ee4
not esi
mov byte [esp + 0x13], 0
and dword [esp + 0x30], esi
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
cmove ecx, dword [esp + 0x54]
and dword [esp + 0x34], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x12], 0
jmp 0x407ee4
mov esi, ecx
shr esi, 3
and esi, 7
cmp esi, 6
jae 0x407fd1
and ecx, 7
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x14], ecx
ja case.0x408053.255
mov dword [esp + 0x4c], 0x40
jmp 0x4080c9
jne 0x40803d
mov esi, ecx
and esi, 7
mov dword [esp + 0x5c], esi
test cl, 0x40
je 0x407ff8
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
lea esi, [esi + ecx*8]
add esi, 8
mov dword [esp + 0x14], esi
jmp 0x408211
mov ecx, dword [esp + 0x14]
add ecx, esi
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x64]
ja case.0x408053.255
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov ecx, esi
xor edi, edi
bts ebx, ecx
cmp ecx, 0x20
cmovae edi, ebx
xor ebx, edi
cmp ecx, 0x40
mov dword [esp + 0x3c], ebx
cmovae edi, ebx
inc esi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], edi
jmp 0x407ee4
add ecx, 0xffffff48
cmp ecx, 0x47
ja case.0x408053.185
movzx ecx, byte [ecx + 0x40834c]
jmp dword [ecx*4 + 0x40832c]
mov cl, byte [eax]
inc eax
movzx esi, cl
test cl, cl
jns 0x408079
and esi, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x408067
add dword [esp + 0x14], esi
jmp case.0x408053.185
mov byte [esp + 0x13], 1
jmp case.0x408053.185
mov byte [esp + 0x12], 1
jmp case.0x408053.185
mov cl, byte [eax]
inc eax
mov dword [esp + 0x5c], eax
movzx esi, cl
test cl, cl
jns 0x4080c1
and esi, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x4080a7
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], 4
mov ecx, dword [esp + 0x44]
test dword [esp + 0x4c], ecx
je 0x408127
test esi, esi
je case.0x408053.185
sub dword [esp + 0x18], esi
mov eax, dword [esp + 0x20]
mov edx, ebx
mov ecx, edi
and edx, eax
and ecx, ebp
dec esi
or edx, ecx
je 0x408104
mov edx, ebx
mov ecx, edi
not edx
not ecx
and dword [esp + 0x24], edx
and eax, edx
and ebp, ecx
and dword [esp + 0x28], ecx
shrd ebx, edi, 1
shr edi, 1
test esi, esi
jne 0x4080e3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edi
jmp case.0x408053.185
cmp esi, 0x40
jae 0x40816b
xor ebx, ebx
lea ecx, [esi + 1]
xor edi, edi
mov dword [esp + 0x18], ecx
bts ebx, esi
cmp esi, 0x20
cmovae edi, ebx
xor ebx, edi
cmp esi, 0x40
mov dword [esp + 0x3c], ebx
cmovae edi, ebx
or edx, ebx
or ebp, edi
mov dword [esp + 0x38], edi
cmp byte [esp + 0x12], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebp
je 0x40816b
or dword [esp + 0x24], ebx
or dword [esp + 0x28], edi
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
jmp case.0x408053.185
mov cl, byte [eax]
inc eax
movzx ebp, cl
test cl, cl
jns 0x408199
and ebp, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl ebp, 7
add ebp, ecx
test dl, dl
js 0x408187
mov ecx, dword [esp + 0x18]
xor edx, edx
xor esi, esi
mov dword [esp + 0x5c], eax
bts edx, ecx
cmp ecx, 0x20
cmovae esi, edx
xor edx, esi
cmp ecx, 0x40
mov dword [esp + 0x4c], edx
cmovae esi, edx
test ebp, ebp
je 0x408209
mov edi, dword [esp + 0x20]
mov ebx, edx
mov eax, dword [esp + 0x28]
mov edx, ebx
mov ecx, esi
and ecx, dword [esp + 0x1c]
and edx, edi
or edx, ecx
je 0x4081eb
mov edx, ebx
mov ecx, esi
not edx
not ecx
and dword [esp + 0x1c], ecx
and edi, edx
and dword [esp + 0x24], edx
and eax, ecx
dec ebp
shrd ebx, esi, 1
shr esi, 1
test ebp, ebp
jne 0x4081c8
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp esi, dword [esp + 0x64]
jbe 0x407ee0
mov ebx, dword [esp + 0x30]
mov ecx, ebx
and ecx, 1
mov esi, dword [esp + 0x68]
mov edx, ecx
or edx, 2
test bl, 2
pop edi
cmove edx, ecx
mov dword [esi + 0x7c], ebp
mov ecx, edx
mov dword [esi + 0x68], 0
or ecx, 4
test bl, 4
cmove ecx, edx
mov edx, ecx
or edx, 8
test bl, 8
cmove edx, ecx
mov ecx, edx
or ecx, 0x20
test bl, 0x20
cmove ecx, edx
mov edx, ecx
or edx, 0x40
test bl, 0x40
cmove edx, ecx
mov eax, edx
or eax, 0x80
test bl, 0x80
mov ebx, dword [esp + 0x30]
mov ecx, ebx
cmove eax, edx
and ecx, 1
mov edx, ecx
mov dword [esi + 0x60], eax
or edx, 2
mov eax, dword [esp + 0x1c]
test bl, 2
mov dword [esi + 0x78], eax
cmove edx, ecx
mov ecx, edx
or ecx, 4
test bl, 4
cmove ecx, edx
mov edx, ecx
or edx, 8
test bl, 8
cmove edx, ecx
mov ecx, edx
or ecx, 0x20
test bl, 0x20
cmove ecx, edx
mov edx, ecx
or edx, 0x40
test bl, 0x40
cmove edx, ecx
mov ecx, dword [esp + 0x24]
mov eax, edx
mov dword [esi + 0x84], ecx
or eax, 0x80
test bl, 0x80
cmove eax, edx
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x14]
pop esi
pop ebp
shl eax, 2
pop ebx
add esp, 0x48
ret 0x10
mov cl, byte [eax]
inc eax
movzx esi, cl
test cl, cl
jns 0x408322
and esi, 0x7f
nop dword [eax]
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x408310
add dword [esp + 0x18], esi
jmp case.0x408053.185