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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c0
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x3d4]
mov eax, dword [0x8af4c0]
xor eax, esp
mov dword [esp + 0x3bc], eax
movzx ebp, byte [esi + 4]
xorps xmm0, xmm0
lea ebx, [esp + 0x3ac]
movups xmmword [ebx], xmm0
lea ecx, [esp + 0x90]
call fcn.004174d0
mov ecx, ebx
mov edi, ebp
push ebp
call fcn.00416cb0
test eax, eax
jne 0x416a7d
lea ecx, [esp + 0x90]
push ebx
push dword [esp + 0x3dc]
push esi
call fcn.00417570
test eax, eax
jne 0x416a7d
mov ebx, edi
imul edi, edi, 0xd8
lea eax, [edi + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::ArchTraits_const__const_const_asmjit::_abi_1_10::_archTraits]
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
movzx ecx, byte [esp + 0x9d]
mov dword [esp + 0x2c], ecx
movzx eax, byte [eax]
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
mov dl, byte [esi + 0xd]
mov dword [esp + 8], eax
cmp dl, byte [esi + 0xa]
jb 0x416460
mov edx, dword [esp + 0x3d4]
test byte [edx], 0x10
jne 0x416448
mov edx, dword [esp + 0x2c]
cmp dword [esp], edx
jbe 0x416451
movzx edx, byte [esp + edx*8 + 0x1a6]
jmp 0x41645c
movzx edx, byte [edi + 0x79cd29]
jmp 0x41645c
mov edx, dword [esp + 0x3d4]
movzx edx, byte [edx + 6]
mov dword [esp + 8], edx
lea edx, [esp + 0xa4]
mov ecx, dword [ecx + 0x40]
mov dword [esp + 0x30], ecx
cmp byte [edx - 9], 0
je 0x416760
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x3d4]
movzx ecx, byte [esi + 5]
xor edx, edx
mov edi, dword [esp + 8]
cmp edi, ecx
setne dl
mov ecx, dword [esi + edx*4 + 0x24]
mov edx, dword [esp + 0x30]
and edx, 0xf8
or edx, 2
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edi
and dword [esp + 0x88], 0
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
mov ecx, dword [esp]
test ecx, ecx
je 0x41675c
mov edx, dword [esp + 0x10]
lea eax, [edx + 0x79cd3c]
mov dword [esp + 4], eax
xor eax, eax
test bl, 1
sete al
lea eax, [eax*4 + 4]
mov dword [esp + 0xc], eax
lea eax, [edx + 0x79cd74]
mov dword [esp + 0x20], eax
lea eax, [edx + 0x79cd58]
mov dword [esp + 0x28], eax
lea eax, [edx + 0x79cd54]
mov dword [esp + 0x14], eax
xor ebp, ebp
lea esi, [esp + 0x50]
mov eax, dword [esp + ebp*8 + 0x1a8]
bt eax, 9
jae 0x4166f4
movaps xmm0, xmmword [0x791af0]
movups xmmword [esp + 0x60], xmm0
mov edx, eax
sar edx, 0xc
sar eax, 0x1f
lea ecx, [esp + 0x70]
push eax
push edx
push esi
call fcn.00416d00
mov eax, dword [esp + ebp*8 + 0x1a4]
mov edx, eax
sar edx, 0xc
sar eax, 0x1f
lea ecx, [esp + 0x80]
push eax
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00416d00
mov ecx, dword [esp + ebp*8 + 0x1a4]
bt ecx, 0xa
jb 0x4165c7
bt ecx, 8
jae 0x4165dd
mov eax, ecx
shr eax, 0x18
mov edx, dword [esp + 4]
mov eax, dword [edx + eax*4]
shr ecx, 0x10
movzx edx, cl
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
shr eax, 2
and eax, 0x3c0
lea esi, [esp + 0xa4]
lea edi, [esi + eax]
xor ebx, ebx
inc ebx
shl ebx, cl
mov byte [edx + edi + 0x20], 0xff
xor dword [esi + eax + 0xc], ebx
jmp 0x416695
bt ecx, 9
jb 0x416a7a
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x44], eax
mov eax, dword [esp + ebp*8 + 0x1a8]
mov edx, eax
mov esi, 0xff
and edx, esi
movzx ebx, byte [edx + 0x79e07c]
mov edx, ecx
and edx, esi
movzx edx, byte [edx + 0x79e07c]
cmp bl, dl
cmova edx, ebx
mov edi, edx
and edi, esi
cmp dword [esp + 0xc], edi
jae 0x41662a
mov ebx, ecx
add bl, 0xe0
cmp bl, 9
ja 0x4166ff
mov ebx, eax
add bl, 0xe0
cmp bl, 9
ja 0x4166ff
mov edi, dword [esp + 0x14]
cmp dl, 5
jb 0x416637
mov edi, dword [esp + 0x28]
mov edx, dword [edi]
test edx, edx
je 0x416755
mov ebx, edx
shr ebx, 2
and ebx, 0x3c0
lea esi, [esp + 0xa4]
mov edi, dword [esi + ebx + 0xc]
not edi
and edi, dword [esi + ebx + 4]
je 0x416755
bsf edi, edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edi
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx]
movzx edi, cl
movzx eax, al
mov ecx, ebx
push 0
push edi
lea esi, [esp + 0x48]
push esi
push eax
lea eax, [esp + 0x70]
push eax
call dword [edx + 8]
test eax, eax
jne 0x416a7d
mov ecx, dword [esp + ebp*8 + 0x1a4]
mov eax, ecx
not eax
test ax, 0x500
jne 0x4166c7
shr ecx, 0x10
movzx eax, cl
mov byte [esp + eax + 0xc4], 0xff
xor eax, eax
inc eax
shl eax, cl
xor dword [esp + 0xb0], eax
mov ecx, dword [esp + ebp*8 + 0x1a4]
lea esi, [esp + 0x50]
mov edi, dword [esp + 0x24]
mov eax, dword [edi]
movzx edx, cl
mov ecx, edi
push 0
push edx
lea edx, [esp + 0x68]
push edx
push esi
call dword [eax]
test eax, eax
jne 0x416a7d
or byte [esp + ebp*8 + 0x1a5], 8
mov ecx, dword [esp]
inc ebp
cmp ecx, ebp
jne 0x416522
jmp 0x41675c
cmp dl, 8
ja 0x416715
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x2c]
test edx, edx
jne 0x416641
jmp 0x41671a
cmp dl, 0x10
ja 0x41672b
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x30]
test edx, edx
jne 0x416641
jmp 0x416730
cmp dl, 0x20
ja 0x416748
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x34]
mov edi, dword [esp + 0x20]
test edx, edx
jne 0x416641
jmp 0x416637
mov edi, dword [esp + 0x20]
cmp dl, 0x40
jbe 0x416637
push 3
jmp 0x416a7c
mov edi, dword [esp + 0x10]
lea ebp, [edi + 0x79cd3c]
xor ecx, ecx
mov edx, dword [esp]
mov dword [esp + 0x1c], ebp
test edx, edx
je 0x416a5a
xor ebx, ebx
mov edi, dword [esp + ebx*8 + 0x1a4]
mov eax, edi
and eax, 0x900
cmp eax, 0x100
jne 0x416a51
mov dword [esp + 0xc], ecx
mov eax, edi
shr eax, 0x18
mov ecx, dword [ebp + eax*4]
mov dword [esp + 0x10], ecx
shr ecx, 8
mov esi, dword [esp + ebx*8 + 0x1a8]
mov edx, esi
shr edx, 0x18
mov ebp, dword [ebp + edx*4]
mov dword [esp + 0x28], ebp
shr ebp, 8
mov edx, ebp
xor edx, ecx
test dl, 0xf
jne 0x416a7a
mov dword [esp + 0x20], edi
shr edi, 0x10
mov edx, 0xff
and edi, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], esi
shr esi, 0x10
and esi, edx
and ebp, 0xf
shl ebp, 6
lea edx, [esp + 0xa4]
mov edi, dword [edx + ebp + 0xc]
mov dword [esp + 0x38], edi
bt edi, esi
jae 0x416870
add edx, ebp
mov dword [esp + 4], esi
mov dword [esp + 0x34], edx
mov dl, byte [esi + edx + 0x20]
mov byte [esp + 0x1b], dl
movzx esi, dl
mov edx, dword [esp + esi*8 + 0x1a8]
test edx, edx
je 0x416839
bt edx, 8
jae 0x416957
shr edx, 0x10
movzx edx, dl
cmp edx, dword [esp + 0x14]
jne 0x416957
and ecx, 0xf
mov edx, dword [esp + 0x1c]
test byte [edx + ecx - 4], 1
jne 0x416963
mov edi, dword [esp + 0x38]
not edi
lea eax, [esp + 0xa4]
and edi, dword [eax + ebp + 4]
je 0x416957
mov eax, dword [eax + ebp + 0x10]
not eax
and eax, edi
cmove eax, edi
bsf esi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x84], edi
and dword [esp + 0x88], 0
and dword [esp + 0x8c], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], esi
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
mov edx, 0xff
mov esi, dword [esp + 0x20]
and esi, edx
mov eax, dword [esp + 0x3c]
and eax, edx
push 0
push esi
lea edx, [esp + 0x88]
push edx
push eax
lea edx, [esp + 0x80]
push edx
mov eax, dword [esp + 0x24]
call dword [eax + 8]
test eax, eax
jne 0x416a7d
lea ecx, [esp + 0xa4]
lea esi, [ecx + ebp]
add esi, 0xc
add ebp, ecx
mov byte [edi + ebp + 0x20], 0xff
mov eax, dword [esp + 4]
mov byte [eax + ebp + 0x20], bl
xor edx, edx
inc edx
mov ecx, eax
shl edx, cl
btc edx, edi
xor dword [esi], edx
mov ecx, dword [esp + ebx*8 + 0x1a8]
mov edx, eax
mov esi, eax
shl edx, 0x10
mov eax, ecx
and eax, 0xff0000ff
or eax, edx
shr ecx, 0x10
movzx ecx, cl
xor edx, edx
cmp esi, ecx
sete dl
shl edx, 0xb
add eax, edx
add eax, 0x100
mov dword [esp + ebx*8 + 0x1a4], eax
mov ecx, dword [esp + 0xc]
or ecx, 3
jmp 0x416a4a
mov ecx, dword [esp + 0xc]
or ecx, 2
jmp 0x416a4a
movzx ecx, byte [esp + esi*8 + 0x1a7]
cmp al, cl
movzx eax, al
cmovbe eax, ecx
mov ecx, eax
add cl, 0xfd
cmp cl, 3
push 6
pop ecx
cmovb eax, ecx
movzx eax, al
mov eax, dword [edx + eax*4]
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x84], edi
and dword [esp + 0x88], 0
and dword [esp + 0x8c], 0
mov dword [esp + 0x70], eax
mov ebp, esi
mov esi, dword [esp + 4]
mov dword [esp + 0x74], esi
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
push 0
lea edx, [esp + 0x84]
push edx
lea edx, [esp + 0x78]
push edx
call dword [eax + 4]
test eax, eax
jne 0x416a7d
mov eax, dword [esp + 0x34]
mov cl, byte [esp + 0x1b]
mov byte [edi + eax + 0x20], cl
add eax, esi
add eax, 0x20
mov byte [eax], bl
shl esi, 0x10
mov eax, dword [esp + ebx*8 + 0x1a4]
mov ecx, 0xff00f7ff
and eax, ecx
add eax, esi
add eax, 0x800
mov dword [esp + ebx*8 + 0x1a4], eax
shl edi, 0x10
mov eax, dword [esp + ebp*8 + 0x1a4]
mov ecx, 0xff00ffff
and eax, ecx
or eax, edi
mov dword [esp + ebp*8 + 0x1a4], eax
cmp dword [esp + ebp*8 + 0x1a8], 0
je 0x416a43
or eax, 0x800
mov dword [esp + ebp*8 + 0x1a4], eax
mov ecx, dword [esp + 0xc]
or ecx, 1
mov edx, dword [esp]
mov ebp, dword [esp + 0x1c]
inc ebx
cmp edx, ebx
jne 0x416779
test cl, 2
je 0x416a9c
mov eax, ecx
and eax, 5
cmp eax, 4
je 0x416755
not ecx
shl ecx, 2
and ecx, 4
jmp 0x41676f
push 0x19
pop eax
mov ecx, dword [esp + 0x3bc]
xor ecx, esp
mov esi, eax
call fcn.0055e764
mov eax, esi
add esp, 0x3c0
pop esi
pop edi
pop ebx
pop ebp
ret 8
cmp byte [esp + 0x99], 0
je 0x416ca9
mov ecx, dword [esp + 0x3d4]
mov al, byte [ecx + 0xd]
cmp al, byte [ecx + 0xa]
mov eax, ecx
jb 0x416ae8
test byte [eax], 0x10
jne 0x416ae8
mov eax, dword [esp + 0x2c]
cmp edx, eax
jbe 0x416ad2
movzx eax, byte [esp + eax*8 + 0x1a6]
jmp 0x416add
mov eax, dword [esp + 0x3d4]
movzx eax, byte [eax + 6]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3d4]
mov esi, eax
movzx eax, byte [eax + 5]
xor ebx, ebx
mov ecx, dword [esp + 8]
cmp ecx, eax
setne bl
mov eax, dword [esi + ebx*4 + 0x24]
mov esi, dword [esp + 0x30]
and esi, 0xf8
or esi, 2
lea edi, [esp + 0x80]
mov dword [edi], esi
mov dword [edi + 4], ecx
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
xor edi, edi
inc edi
mov eax, edi
shl eax, cl
mov dword [esp + 0x28], eax
xor ecx, ecx
mov dword [esp + 0x20], ecx
test edx, edx
je 0x416c98
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x1a4]
mov ecx, eax
and ecx, 0xa00
cmp ecx, 0x200
jne 0x416c89
mov dword [esp + 0xc], edi
mov edx, dword [esp + ebx*8 + 0x1a8]
mov ecx, edx
shr ecx, 0x10
movzx edi, cl
mov dword [esp + 4], edx
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ebp + ecx*4]
mov esi, ecx
shr esi, 8
and esi, 0xf
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 8]
jne 0x416bcf
mov edx, ecx
and edx, 0xf00
mov edi, dword [esp + 0xc]
jne 0x416bcf
push 2
pop eax
cmp edi, 1
mov edx, dword [esp]
je 0x416c8b
mov eax, esi
shl eax, 6
lea edx, [esp + 0xa4]
add edx, eax
mov ebp, dword [esp + 8]
mov byte [ebp + edx + 0x20], 0xff
mov edx, dword [esp + 0x28]
lea ebp, [esp + 0xa4]
xor dword [ebp + eax + 0xc], edx
mov eax, dword [esp + ebx*8 + 0x1a4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x14]
mov edi, ecx
mov dword [esp + 0x74], ecx
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
mov edx, eax
sar edx, 0xc
sar eax, 0x1f
lea ecx, [esp + 0x80]
push eax
push edx
lea eax, [esp + 0x68]
push eax
call fcn.00416d00
movzx eax, byte [esp + ebx*8 + 0x1a4]
movzx edx, byte [esp + ebx*8 + 0x1a8]
mov ecx, dword [esp + 0x24]
mov ebp, dword [ecx]
mov dword [esp + 0x10], ebp
push 0
push eax
lea eax, [esp + 0x68]
push eax
push edx
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x24]
call dword [eax + 8]
test eax, eax
jne 0x416a7d
shl esi, 6
lea ebp, [esp + 0xa4]
lea eax, [esi + ebp]
xor edx, edx
inc edx
mov ecx, edi
shl edx, cl
mov byte [edi + eax + 0x20], bl
xor dword [ebp + esi + 0xc], edx
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 4]
and eax, 0xff000000
shl ecx, 0x10
or ecx, eax
movzx eax, byte [esp + ebx*8 + 0x1a4]
add eax, ecx
add eax, 0x900
mov dword [esp + ebx*8 + 0x1a4], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp]
jmp 0x416c8b
mov eax, edi
inc ebx
mov edi, eax
cmp edx, ebx
jne 0x416b38
jmp 0x416c9a
mov eax, edi
mov ecx, dword [esp + 0x20]
inc ecx
mov edi, eax
cmp ecx, eax
jb 0x416b2a
xor eax, eax
jmp 0x416a7d