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

Disassembly:
push ebp
push edi
push esi
push ebx
imul ebx, ecx, 0xcc
sub esp, 0x6c
mov edi, dword [eax + 0x10]
lea ebx, [edx + ebx + 0xc0]
test edi, 8
mov dword [esp + 0x24], edi
mov esi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jne 0x493c18
mov ebp, eax
mov eax, dword [eax]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], esi
mov edx, esi
mov dword [esp + 0x30], eax
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
add ebx, eax
mov eax, dword [ebp + 4]
mov edx, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], eax
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x493c20
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x78], 0
je 0x493f81
cmp byte [eax + 0x7a], 0
je 0x493c40
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], 1
mov dword [ebp + 0xc], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
jmp 0x493c5f
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0x493fa1
cmp eax, 3
je 0x493c10
cmp eax, 1
jne 0x493fc4
mov edx, 0x40
mov eax, dword [esp + 0x48]
mov dword [ebp + 0xc], edx
sub eax, edx
mov dword [ebp + 8], eax
nop
mov eax, edi
or eax, 8
mov dword [ebp + 0x10], eax
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x20], 1
je 0x493dd0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
mov dword [ebp + 0xc], eax
jmp 0x493bd0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], 0
mov dword [ebp + 0xc], eax
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x493cb7
test byte [esi + 0x10], 8
je 0x494035
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 4]
sar eax, 1
sar edx, 1
add eax, dword [esp + 0x30]
add edx, dword [esi]
sub eax, edx
mov edx, dword [esp + 0x44]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ebx, dword [esi + 0xc]
sar ebx, 1
add ebx, dword [esi + 8]
add ebx, eax
mov eax, dword [esp + 0x1c]
sar eax, 1
sub ebx, eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x7c], 0
je 0x493d30
cmp dword [esp + 0x1c], 0x40
jle 0x493fe5
imul eax, dword [esp + 0x20], 0xcc
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + eax + 0xc]
mov eax, dword [esp + 0x1c]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
cmp eax, 0x27
jg 0x493d12
cmp edx, 0x2f
mov dword [esp + 0x2c], 0x36
jle 0x493d30
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x2c], 0xbf
mov eax, dword [esp + 0x2c]
jle 0x494148
add eax, 0x20
and eax, 0xffffffc0
mov dword [esp + 0x2c], eax
nop
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, ecx
lea edx, [ecx + esi + 0x20]
add eax, 0x20
and eax, 0xffffffc0
and edx, 0xffffffc0
sub eax, ecx
sub edx, ecx
sub edx, esi
mov ebx, eax
sar ebx, 0x1f
mov esi, edx
sar esi, 0x1f
mov ecx, ebx
xor ebx, eax
sub ebx, ecx
mov ecx, esi
xor ecx, edx
sub ecx, esi
mov esi, dword [esp + 0x2c]
cmp ebx, ecx
mov ecx, dword [esp + 0x28]
cmovg eax, edx
mov dword [ebp + 0xc], esi
lea ebx, [ecx + eax]
mov eax, esi
mov dword [ebp + 8], ebx
mov edx, dword [esp + 0x34]
test edx, edx
je 0x493c10
cmp eax, 0x3f
jle 0x493be2
mov ecx, dword [esp + 0x40]
add eax, 0x20
mov edx, eax
and edx, 0xffffffc0
cmp ecx, 2
je 0x493fa6
cmp ecx, 3
je 0x493c10
cmp ecx, 1
je 0x493c02
test al, 0x40
mov dword [ebp + 0xc], edx
jne 0x493fd0
sar edx, 1
lea eax, [ebx + edx + 0x20]
and eax, 0xffffffc0
jmp 0x493fdb
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x79], 0
je 0x493f81
cmp byte [eax + 0x7b], 0
jne 0x493fb0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
mov dword [ebp + 0xc], eax
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x38]
movzx eax, byte [esi + 0x9bc]
mov edx, dword [esi + 0x19c]
mov dword [esp + 0x5c], eax
mov eax, esi
add eax, 0x1a0
test edx, edx
je 0x4940d4
mov ebx, ecx
sub ebx, dword [esi + 0x1ac]
mov dword [esp + 0x48], ebx
mov ebx, dword [esi + 0x9b8]
mov dword [esp + 0x40], ebx
neg ebx
cmp ebx, dword [esp + 0x48]
mov dword [esp + 0x4c], ebx
jg 0x4940d4
mov ebx, dword [esp + 0x40]
add ebx, dword [esi + 0x1a8]
cmp ecx, ebx
jle 0x4940bc
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x40]
jmp 0x493e86
mov ebx, ecx
sub ebx, dword [eax + 0xc]
cmp ebx, edi
jl 0x493e8e
mov esi, dword [eax + 8]
add esi, ebp
cmp ecx, esi
jle 0x4940b0
add eax, 0x20
sub edx, 1
jne 0x493e70
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 0x3a0]
lea ebx, [eax - 1]
mov edx, ebx
shl edx, 5
test eax, eax
lea ecx, [esi + edx + 0x3a4]
je 0x49406c
shl eax, 5
add eax, esi
mov esi, dword [esi + 0x9b8]
mov edx, dword [eax + 0x38c]
sub edx, dword [esp + 0x30]
mov dword [esp + 0x4c], edx
mov edx, esi
neg edx
cmp dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
jl 0x49406c
mov eax, dword [eax + 0x390]
sub eax, esi
cmp dword [esp + 0x30], eax
jge 0x49407f
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebp
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x50]
jmp 0x493f3d
mov edx, dword [ecx + 8]
sub edx, edi
cmp edx, ebp
jl 0x494064
mov eax, dword [ecx + 0xc]
sub eax, esi
cmp edi, eax
jge 0x494073
sub ebx, 1
sub ecx, 0x20
test ebx, ebx
jne 0x493f20
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0x494025
cmp eax, 3
je 0x494010
cmp eax, 1
jne 0x493c5f
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
sub ebx, eax
mov dword [ebp + 8], ebx
jmp 0x493d7b
mov eax, dword [esp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x24]
or eax, 8
mov dword [ebp + 0x10], eax
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x40
mov dword [ebp + 0xc], edx
jmp 0x493c10
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], 1
mov dword [ebp + 0xc], eax
jmp 0x493dfa
mov dword [ebp + 0xc], 0x40
mov edx, 0x40
sar edx, 1
lea eax, [edx + ebx]
and eax, 0xffffffc0
add eax, 0x20
sub eax, edx
mov dword [ebp + 8], eax
jmp 0x493c10
cmp dword [esp + 0x1c], 0x1f
jle 0x494104
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0x40
sar ebx, 1
add ebx, dword [esp + 0x28]
and ebx, 0xffffffc0
mov dword [esp + 0x28], ebx
jmp 0x493d30
mov eax, dword [esp + 0x48]
mov dword [ebp + 8], ebx
mov edi, dword [esp + 0x24]
sub eax, ebx
mov dword [ebp + 0xc], eax
jmp 0x493d7b
mov dword [ebp + 8], ebx
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
jmp 0x493d7b
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, esi
call sym._psh_hint_align
mov eax, dword [ebp]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x38], eax
jmp 0x493c70
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
xor ebx, ebx
jmp 0x493f4c
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jne 0x49409d
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov esi, dword [esp + 0x4c]
cmp dword [eax + 0x9b4], esi
jle 0x493f4c
or dword [esp + 0x40], 2
mov ebx, dword [ecx + 0x10]
jmp 0x493f4c
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x5c]
test esi, esi
jne 0x4940f0
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
cmp esi, dword [ecx + 0x9b4]
jle 0x4940f0
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0
jmp 0x493ea6
mov eax, dword [eax + 0x10]
mov dword [esp + 0x40], 1
mov dword [esp + 0x48], eax
jmp 0x493ea6
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x49416c
mov ecx, dword [esp + 0x28]
add eax, ecx
lea esi, [ecx + 0x20]
lea ebx, [eax + 0x20]
and esi, 0xffffffc0
and ebx, 0xffffffc0
mov edx, esi
sub edx, ecx
mov ecx, ebx
sub ecx, eax
mov eax, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
cmp edx, eax
cmovle ebx, esi
mov dword [esp + 0x28], ebx
jmp 0x493d30
and eax, 0x3f
cmp eax, 9
jle 0x493d30
mov edx, dword [esp + 0x2c]
and edx, 0xffffffc0
cmp eax, 0x1f
jg 0x49417f
lea eax, [edx + 0xa]
mov dword [esp + 0x2c], eax
jmp 0x493d30
mov ebx, dword [esp + 0x28]
add ebx, 0x20
and ebx, 0xffffffc0
mov dword [esp + 0x28], ebx
jmp 0x493d30
add edx, 0x36
cmp eax, 0x35
cmovg edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
jmp 0x493d30