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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x94
rcr ah, 5
xchg edx, ecx
not cl
mov dh, dl
lea ecx, [edx + ecx*2]
xchg dh, ah
setb al
lea edx, [eax + eax*4]
not ecx
and al, ah
sbb dl, byte [esp + 8]
dec eax
sbb edx, eax
adc cl, dh
adc ch, dh
not eax
inc ch
and ah, ch
lea edx, [eax + eax*4]
adc al, dl
xor al, al
xchg edx, eax
movzx eax, dl
setns dh
movsx edx, dh
mov edx, eax
xchg ecx, eax
or ah, ah
imul edx, eax
mov dword [esp + 0x60], eax
mov ebx, eax
not ebx
mov ecx, eax
xor ecx, 1
and eax, 1
mov dword [esp + 0x64], ebx
lea esi, [ebx + ebx + 2]
neg esi
lea edx, [ebx + 1]
not esi
sub esi, edx
lea edx, [ecx + eax*2]
mov edi, esi
mov eax, esi
not edi
mov ecx, esi
and edi, 0xb20d53df
and eax, 0x4df2ac20
or ecx, 0xb20d53df
and esi, 0xb20d53df
imul eax, edi
not edx
imul esi, ecx
add eax, esi
lea ebx, [edx + 1]
mov esi, eax
xor eax, 0x775a9e60
and esi, 0x775a9e60
lea eax, [eax + esi*2]
mov ecx, eax
mov edi, eax
and ecx, 0x4db8281f
or edi, 0x4db8281f
imul edi, ecx
mov ecx, eax
not eax
and ecx, 0xb247d7e0
and eax, 0x4db8281f
imul eax, ecx
mov ecx, ebx
add edi, eax
neg ecx
mov eax, edi
or edi, 0xae47d260
and eax, 0xae47d260
dec ecx
sub eax, esi
add eax, edi
mov edi, eax
or edi, ecx
xor ecx, eax
xor edi, ecx
add edi, edi
lea ecx, [eax + edx + 1]
and eax, ebx
mov ebx, 0x18
add eax, eax
sub ecx, eax
mov edx, ecx
not edx
and edx, edi
xor edi, ecx
shld ebx, ebx, 0x18
lea esi, [esi + edx*2]
sub esi, edi
shld esi, esi, 0x18
mov ecx, esi
shrd ecx, esi, 0x11
mov edi, ecx
mov edx, ecx
neg edi
or edx, 0xc00
dec edi
add edx, 0xfffff400
not edi
sub ebx, ecx
mov eax, edi
or eax, 0xc00
sub eax, edi
mov edi, edx
and edi, eax
xor edx, eax
ror esi, cl
mov eax, esi
mov dword [esp], ecx
lea edi, [edx + edi*2]
mov edx, esi
shld edi, edi, 0x11
ror edi, cl
xor eax, edi
and edx, edi
add eax, edx
mov edx, edi
not edx
and edx, esi
lea edi, [edi + edx*2]
sub edi, esi
mov edx, edi
xor edi, eax
not edx
and edx, eax
add edx, edx
sub edx, edi
lea edi, [ebx + ebx]
rol edx, cl
mov eax, edi
mov esi, edi
lea ecx, [edx + edx]
xor eax, ecx
or esi, ecx
and edi, ecx
xor eax, esi
sub edx, edi
add edx, ebx
mov ebx, eax
or ebx, edx
and eax, edx
mov ecx, dword [esp]
add ecx, ebx
add ecx, eax
shld ecx, ecx, 8
mov eax, dword fs:[ecx]
mov edx, dword [esp + 0x60]
mov ebx, edx
mov ecx, dword [eax + 0xf00]
mov eax, edx
and ebx, ecx
xor eax, ecx
mov dword [esp + 0x6c], ecx
lea ebx, [eax + ebx*2]
mov edi, ebx
mov esi, ebx
not edi
and esi, 0x77ca4980
and edi, 0x8835b67f
mov ecx, ebx
imul edi, esi
mov esi, ebx
and ecx, 0x8835b67f
or esi, 0x8835b67f
imul esi, ecx
add edi, esi
mov eax, edi
not eax
imul esi, eax, 0xae10ac2e
imul edi, edi, 0x51ef53d3
not esi
not edi
sub esi, edi
mov ecx, esi
mov edi, esi
mov eax, esi
not ecx
or edi, 0xde10097f
and eax, 0x21eff680
and ecx, 0xde10097f
and esi, 0xde10097f
imul ecx, eax
imul esi, edi
add ecx, esi
mov dword [esp + 0x70], edi
lea eax, [ecx + ecx]
xor ecx, 0x973308d2
and eax, 0xd199ee5a
sub eax, ecx
lea ecx, [edx + edx]
lea edi, [eax + eax]
mov esi, edi
xor edi, ecx
and esi, ecx
add esi, edi
mov edi, edx
and edi, eax
or eax, edx
add edi, eax
lea edx, [ebx + ebx]
lea eax, [ecx + ebx*2]
mov ebx, ecx
and ebx, edx
sub eax, ebx
mov ebx, eax
not eax
and eax, ecx
xor ebx, ecx
add eax, eax
neg ecx
sub ebx, eax
mov eax, ebx
and eax, edx
or edx, ebx
not eax
not edx
sub eax, edx
mov edx, edi
not edx
xor edi, esi
and edx, esi
add edx, edx
mov ebx, dword [esp + 0x70]
sub edx, ebx
sub edx, edi
mov esi, edx
mov edi, edx
and esi, eax
or edi, eax
not esi
not edi
sub esi, edi
lea edi, [eax + edx]
or eax, edx
add edi, edi
add eax, eax
mov edx, esi
sub edi, eax
or edx, edi
and esi, edi
add ebx, edx
add ebx, esi
mov edi, ebx
not edi
mov eax, dword [esp + 0x64]
imul edi, dword [esp + 0x60]
imul ebx, eax
sub edi, ebx
neg eax
mov dword [esp + 0x74], edi
bswap edi
dec edi
not edi
mov esi, edi
add edi, edi
not esi
not edi
neg esi
not esi
sub esi, edi
lea edi, [ecx + eax - 1]
bswap esi
mov edx, edi
mov ecx, esi
neg edx
neg ecx
dec edx
dec ecx
mov ebx, edx
mov eax, ecx
xor ebx, esi
or eax, edi
or edx, esi
xor eax, edi
sub edx, ebx
xor eax, ecx
mov ecx, edx
mov ebx, eax
not ecx
not ebx
and ecx, eax
and ebx, edx
imul ecx, ebx
mov ebx, eax
or ebx, edx
and eax, edx
imul eax, ebx
mov ebx, edi
or ebx, esi
add ecx, eax
sub ebx, esi
lea eax, [edi + esi]
xor ebx, edi
and edi, esi
sub eax, edi
mov edx, ebx
mov esi, eax
not edx
not esi
mov edi, ebx
and edx, eax
and esi, ebx
and edi, eax
or ebx, eax
imul esi, edx
imul ebx, edi
add esi, ebx
mov eax, esi
xor esi, ecx
and eax, ecx
mov ecx, dword [esp + 0x74]
neg ecx
mov ebx, dword [esp + 0x60]
dec ecx
shld ebx, ebx, 4
mov edi, ecx
and ecx, 1
xor edi, 1
not ebx
lea esi, [esi + eax*2]
not esi
neg esi
not esi
lea eax, [edi + ecx*2]
mov dword [esp + 0x78], esi
lea edx, [ebx + 1]
xor edx, 1
lea edi, [ebx + ebx + 2]
and edi, 0xfffffffc
mov ebx, eax
sub edi, edx
lea esi, [esi + 1]
shld edi, edi, 0x1c
mov dword [esp + 0x7c], esi
mov esi, edi
not esi
and ebx, edi
mov edx, esi
lea ecx, [eax + edi]
or edx, eax
sub ecx, ebx
sub edx, esi
mov ebx, edx
mov esi, edx
and ebx, ecx
or esi, ecx
imul esi, ebx
mov ebx, ecx
not ebx
and ebx, edx
not edx
and ecx, edx
imul ecx, ebx
add esi, ecx
mov ecx, edi
neg ecx
lea edx, [ecx - 1]
or edx, eax
lea ebx, [eax + ecx - 1]
neg eax
sub ebx, edx
dec eax
mov ecx, eax
or ecx, edi
xor edi, eax
sub ecx, edi
mov edi, ebx
mov eax, ecx
not edi
not eax
mov edx, ecx
and eax, ebx
and edi, ecx
and edx, ebx
or ecx, ebx
imul edi, eax
imul ecx, edx
add edi, ecx
mov ecx, esi
or ecx, edi
xor esi, edi
add ecx, ecx
sub ecx, esi
mov edx, ecx
and ecx, 1
or edx, 1
add edx, ecx
not edx
mov ecx, dword [esp + 0x78]
lea esi, [edx + 1]
neg esi
lea eax, [ecx + ecx + 2]
lea ebx, [esi - 1]
or ebx, dword [esp + 0x7c]
lea edi, [esi + ecx]
sub edi, ebx
lea esi, [edx + ecx + 2]
add edi, edi
lea edx, [edx + edx + 2]
and edx, eax
mov ebx, edi
sub esi, edx
not edi
xor ebx, esi
and esi, edi
add esi, esi
sub ebx, esi
mov ecx, dword [esp + 0x6c]
mov eax, ecx
mov edi, ebx
rol eax, cl
rol edi, cl
bswap ebx
not ebx
bswap ebx
lea esi, [eax + eax]
lea edx, [edi + edi]
or esi, edx
mov edx, edi
xor edx, eax
sub esi, edx
mov edx, ebx
mov dword [esp + 0x84], esi
mov esi, edi
not esi
and edx, 0xc7214953
or eax, esi
add eax, edi
mov edi, ebx
not edi
and edi, 0xc7214953
lea esi, [eax + eax + 2]
mov eax, ebx
and eax, 0x38deb6ac
or ebx, 0xc7214953
imul edi, eax
imul ebx, edx
add edi, ebx
mov ebx, edi
xor edi, 0x5d0f97f6
and ebx, 0x22f06809
add ebx, ebx
sub ebx, edi
mov edi, ebx
mov eax, ebx
not edi
mov edx, ebx
or eax, 0x34a9e2db
and edi, 0x34a9e2db
and edx, 0xcb561d24
and ebx, 0x34a9e2db
imul edx, edi
imul ebx, eax
add edx, ebx
mov ebx, edx
not ebx
imul ebx, ebx, 0xa9e42b72
imul edx, edx, 0x561bd48f
not ebx
not edx
sub ebx, edx
mov dword [esp + 0x88], eax
mov eax, ecx
bswap ebx
bswap eax
mov edi, ebx
mov edx, ebx
and edi, eax
xor edx, eax
add edi, edx
mov edx, edi
not edx
imul edx, eax
not eax
imul eax, edi
sub edx, eax
mov eax, esi
mov edi, edx
not eax
not edi
and edi, ebx
not ebx
and ebx, edx
add edi, ebx
mov ebx, dword [esp + 0x84]
and eax, ebx
bswap edi
add eax, eax
xor ebx, esi
add edi, edi
sub eax, ebx
ror eax, cl
mov ecx, edi
mov esi, dword [esp + 0x88]
sub eax, esi
neg ecx
mov edx, eax
dec ecx
mov ebx, eax
xor edx, ecx
or ecx, eax
or ebx, edi
sub ecx, edx
add ebx, ebx
add ecx, ecx
sub ebx, edi
mov edi, ecx
sub ebx, eax
not ecx
xor edi, ebx
add ecx, ecx
add ebx, ebx
add esi, edi
and ecx, ebx
sub esi, ecx
mov ecx, esi
shld ecx, esi, 0x1d
mov edi, ecx
xor edi, 0xcae34de0
lea edx, [ecx + ecx]
or edx, 0x95c69bc0
sub edx, ecx
and ecx, 0xcae34de0
add edi, ecx
add edx, 0x351cb220
mov eax, edi
not edi
sub eax, edx
and edx, edi
lea edi, [esi + esi - 0x51cb21f4]
lea eax, [eax + edx*2]
shld eax, eax, 3
mov ebx, eax
not ebx
add ebx, ebx
and edi, ebx
sub edi, esi
add esi, esi
neg esi
add esi, 0x51cb21f2
lea ecx, [edi + eax - 0x571a6f06]
add eax, eax
mov edx, eax
or edx, esi
sub edx, eax
xor edx, esi
mov esi, edx
xor esi, ecx
not ecx
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x68], esi
lea eax, [esi + 0x65503810]
xor eax, 0x34caa234
movsx edx, al
xor edx, 0x65200c71
lea esi, [esp + 0x80]
mov dword [esi], edx
xor edx, edx
mov dword [esp + 0x50], eax
mov ecx, dword [esi]
shld ecx, ecx, 0x13
add ecx, 0x81da5f89
mov eax, dword [edx*4 + 0x1002f6e0]
sub eax, ecx
mov byte [esp + edx], al
inc edx
movsx edx, dl
cmp edx, 0x4d
jl 0x100046c5
mov edi, dword [esp + 0x38]
mov edx, edi
mov eax, dword [esp + 0x30]
sub edx, eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], edx
cmp edx, ecx
je 0x10004984
mov ebx, dword [esp + 0x68]
shld ebx, ebx, 0x16
mov eax, ebx
xor eax, 0xda6af799
and eax, 0xda6af799
lea esi, [ebx + ebx]
and esi, 0xb4d5ef32
lea ecx, [ebx + 0x55d0d68a]
sub ecx, esi
add eax, ebx
shrd ebx, ebx, 8
add eax, eax
mov edx, ebx
mov dword [esp + 0x70], edi
lea esi, [ecx + 0x49a210f]
xor esi, eax
not eax
add eax, eax
lea edi, [ecx + ecx + 0x934421e]
and edx, 0x8a55d0d6
and edi, eax
xor edx, ebx
lea eax, [ebx - 0x75aa2f2a]
add ebx, ebx
add edx, 0x8a55d0d6
and ebx, 0x14aba1ac
sub esi, edi
sub eax, ebx
mov ebx, edx
not edx
xor ebx, eax
and eax, edx
add eax, eax
lea ecx, [esi - 0x49a210f]
sub ebx, eax
neg ecx
shrd ebx, ebx, 0x18
dec ecx
add esi, 0xfb65def0
mov edx, ecx
not esi
not edx
lea edi, [ebx + ebx - 8]
lea eax, [edi - 1]
neg edi
not eax
dec edi
mov ebx, eax
and edx, eax
not ebx
and ebx, ecx
imul ebx, edx
mov edx, ecx
or edx, eax
and ecx, eax
imul ecx, edx
mov eax, edi
add ebx, ecx
mov ecx, edi
mov edx, esi
or eax, esi
and ecx, esi
not edx
imul ecx, eax
and edx, edi
not edi
neg ecx
and edi, esi
dec ecx
imul edi, edx
neg ebx
sub ecx, edi
dec ebx
mov esi, ecx
xor edi, edi
not esi
imul esi, ebx
not ebx
imul ebx, ecx
bswap edi
not esi
mov eax, edi
add esi, 0xfffffff8
not ebx
neg eax
sub esi, ebx
dec eax
mov ebx, dword [esp + 0x68]
mov edx, ebx
bswap edx
mov ecx, eax
or ecx, edx
sub ecx, eax
mov eax, edx
not eax
xor ecx, edx
and eax, edi
xor edx, edi
add eax, eax
add ecx, ecx
sub eax, edx
shld ebx, ebx, 0x12
shrd esi, esi, 0x16
mov dword [esp + 0x68], ebx
lea ebx, [eax + eax]
lea edi, [ecx + ecx]
xor ecx, eax
or ebx, edi
sub ebx, ecx
bswap ebx
shld ebx, ebx, 0xe
mov edi, dword [esp + 0x70]
lea ecx, [ebx + ebx]
mov dword [esp + 0x74], ecx
mov eax, edi
xor eax, dword [esp + 8]
cmp eax, dword [esp]
je 0x1000494c
mov eax, edi
xor eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x48]
je 0x100048f7
mov eax, edi
xor eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x20]
jne 0x100048bc
mov ecx, dword [esp + 0x50]
mov eax, ecx
xor eax, 0x835a3cbc
xor ecx, 0xa05dd84d
and eax, 0xfbfa391c
mov edx, esi
or eax, 0xf4054441
movzx ecx, cl
imul ecx, ecx, 0xffffff55
mov eax, dword [eax*4 + 0x10160464]
push 1
lea eax, [eax + ecx - 4]
mov ecx, dword [ebp + 8]
call eax
xor edi, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, edi
mov ecx, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x64], ecx
jmp 0x10004972
mov eax, edi
add eax, dword [esp + 4]
cmp eax, dword [esp + 0x1c]
je 0x100048de
mov eax, edi
sub eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x40]
jne 0x10004976
sub edi, dword [esp + 0x28]
jmp 0x100048ef
mov eax, dword [esp + 0x78]
imul eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
sub ecx, eax
xor edi, ecx
mov eax, edi
sub eax, dword [esp + 0x64]
jmp 0x10004972
mov eax, dword [esp + 0x68]
shld eax, eax, 0xe
shld eax, eax, 0xe
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x74]
mov edx, esi
xor edi, dword [esp + 0x10]
lea ecx, [eax + eax]
or edx, ecx
xor eax, ebx
sub edx, eax
mov eax, esi
or eax, ecx
sub eax, ecx
xor eax, esi
mov ecx, eax
not ecx
imul ecx, edx
not edx
imul edx, eax
not ecx
not edx
sub ecx, edx
mov edx, edi
sub edx, dword [esp + 0x64]
shld ecx, ecx, 0x12
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x60], edx
jmp 0x10004976
mov eax, dword [esp + 0x50]
xor ecx, ecx
xor eax, 0xf11494e0
not eax
xor edi, dword [esp + 0x34]
and eax, 0x79b491c3
cmp eax, dword [ebp + 0xc]
mov eax, edi
setne cl
sub eax, dword [esp + 0x64]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x6c]
jne 0x1000483c
mov eax, dword [esp + 0x70]
add esp, 0x94
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc