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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [ebp + 8]
mov edx, 0xff
mov ecx, eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x74]
movzx edx, byte [edx]
cmp edx, 0xff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
je 0x4e5a03
mov eax, dword [esp + 0x78]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x3c]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x34], eax
jmp 0x4e5db9
call fcn.004e5eb0
call fcn.004e5ec0
mov edx, esi
mov edx, eax
sub edx, 0xf86816b8
sub edx, 1
sub edx, 0x797e948
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x4e5a51
jmp 0x4e5dc5
mov eax, 0xffffffff
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 1]
shl ecx, 8
mov edx, dword [esp + 0x74]
movzx edx, byte [edx + 2]
mov esi, ecx
and esi, edx
xor ecx, edx
or esi, ecx
mov di, si
mov word [esp + 0x72], di
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 3]
shl ecx, 0x18
mov edx, dword [esp + 0x74]
movzx edx, byte [edx + 4]
shl edx, 0x10
mov esi, ecx
xor esi, 0xaa4695dd
xor esi, 0x55b96a22
mov ebx, 0x4374b0
mov ebx, edx
xor ebx, 0x36ce3c54
xor ebx, 0xc931c3ab
mov edi, eax
xor edi, 0xac79d263
mov dword [esp + 0x30], eax
mov eax, esi
and eax, 0xac79d263
and ecx, edi
mov dword [esp + 0x2c], eax
mov eax, ebx
and eax, 0xac79d263
and edx, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
or eax, ecx
mov ecx, dword [esp + 0x28]
or ecx, edx
xor eax, ecx
or esi, ebx
xor esi, 0xffffffff
or edi, 0xac79d263
and esi, edi
or eax, esi
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 5]
shl ecx, 8
mov edx, eax
and edx, ecx
xor eax, ecx
or edx, eax
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + 6]
mov ecx, edx
xor ecx, 0xffffffff
mov esi, eax
xor esi, 0xffffffff
mov edi, dword [esp + 0x30]
xor edi, 0xc249074d
mov ebx, ecx
and ebx, 0xc249074d
and edx, edi
mov dword [esp + 0x24], eax
mov eax, esi
and eax, 0xc249074d
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
and eax, edi
or ebx, edx
mov edx, dword [esp + 0x20]
or edx, eax
xor ebx, edx
or ecx, esi
xor ecx, 0x38c00b5c
xor ecx, 0xc73ff4a3
or edi, 0xc249074d
and ecx, edi
or ebx, ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x74]
add eax, 7
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x50]
call fcn.004bb4d0
mov dword [esp + 0x4c], 0
call fcn.004e5ed0
call fcn.004e5ee0
mov esi, ecx
sub esi, 0xdb50f7e7
sub esi, 1
sub esi, 0x24af0819
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete cl
push ecx
mov ecx, 0x9409c9d
xor ecx, 0x9409c97
cmp edx, ecx
pop ecx
setl ch
mov dl, cl
and dl, ch
xor cl, ch
or dl, cl
test dl, 1
mov dword [esp + 0x1c], eax
jne 0x4e5bea
jmp 0x4e5dc5
jmp 0x4e5bef
mov eax, dword [esp + 0x4c]
movzx ecx, word [esp + 0x72]
cmp eax, ecx
jae 0x4e5d8b
mov eax, 0xffffffff
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x74]
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x4c]
xor esi, 0xffffffff
mov edi, eax
xor edi, 3
mov ebx, eax
xor ebx, 0xb4d96a7f
or esi, edi
or ebx, 0xb4d96a7f
xor esi, 0xffffffff
and esi, ebx
shl esi, 3
mov dword [esp + 0x18], ecx
mov ecx, ebx
mov ecx, esi
shr edx, cl
mov esi, dword [esp + 0x18]
sub esi, 0x152515de
sub esi, edx
sub esi, 0xeadaea22
xor eax, 0xff
mov edx, esi
xor edx, eax
and edx, esi
mov cl, dl
movsx eax, cl
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0x50]
call fcn.00407000
sub esp, 4
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
call fcn.004e5ef0
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x4e5cee
jmp 0x4e5ea1
mov al, 1
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
sub esi, 0xd08cdc13
sub esi, 1
add esi, 0xd08cdc13
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x4e5d64
jmp 0x4e5ea1
jmp 0x4e5d69
mov eax, 0
mov ecx, dword [esp + 0x4c]
mov edx, eax
sub edx, ecx
mov ecx, eax
sub ecx, 1
add edx, ecx
sub eax, edx
mov dword [esp + 0x4c], eax
jmp 0x4e5bef
mov eax, esi
mov eax, esp
lea ecx, [esp + 0x50]
call fcn.004e5f00
mov ecx, dword [esp + 0x3c]
call fcn.0054edf0
sub esp, 4
mov dword [esp + 0x40], 1
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.00551e20
mov eax, dword [esp + 0x38]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0xffffffff
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 1]
shl ecx, 8
mov edx, dword [esp + 0x74]
movzx edx, byte [edx + 2]
mov esi, ecx
and esi, edx
xor ecx, edx
or esi, ecx
mov di, si
mov word [esp + 0x72], di
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 3]
shl ecx, 0x18
mov edx, dword [esp + 0x74]
movzx edx, byte [edx + 4]
shl edx, 0x10
mov esi, ecx
and esi, edx
xor ecx, edx
or esi, ecx
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 5]
shl ecx, 8
mov edx, esi
and edx, ecx
xor esi, ecx
or edx, esi
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 6]
mov esi, edx
xor esi, 0xffffffff
mov ebx, ecx
xor ebx, 0xffffffff
xor eax, 0x6a99b927
mov edi, esi
and edi, 0x6a99b927
and edx, eax
mov dword [esp + 0x10], eax
mov eax, ebx
and eax, 0x6a99b927
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
and ecx, eax
or edi, edx
mov edx, dword [esp + 0xc]
or edx, ecx
xor edi, edx
or esi, ebx
xor esi, 0xffffffff
or eax, 0x6a99b927
and esi, eax
or edi, esi
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x74]
sub eax, 0xfffffff9
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x50]
call fcn.004bb4d0
mov dword [esp + 0x4c], 0
mov dword [esp + 8], eax
jmp 0x4e5a51
jmp 0x4e5cee