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

Disassembly:
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x4d792c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x457ecf
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x457ecf
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 4]
call 0x458159
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x4d792c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x457f4a
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x457f4a
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x24]
call 0x458159
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x4d792c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x457fc5
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x457fc5
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x204]
call 0x458159
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x4d792c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x458043
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x458043
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x224]
call 0x458159
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x4d79ac]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x4580c1
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x4580c1
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x104]
add eax, ebx
mov dword [esi + 0x104], eax
mov ecx, 0x20
lea edx, [esp + 0x404]
call 0x458159
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x4d79ac]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x45813f
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x45813f
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x108]
add eax, ebx
mov dword [esi + 0x108], eax
mov ecx, 0x20
lea edx, [esp + 0x504]
push ecx
push edx
sub esp, 0x300
xor ebx, ebx
mov edx, dword [esi]
lea ecx, [esp]
imul edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], ebx
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x24], ebx
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x2c], ebx
mov dword [ecx + 0x30], ebx
mov dword [ecx + 0x34], ebx
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x3c], ebx
mov dword [ecx + 0x40], ebx
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0x48], ebx
mov dword [ecx + 0x4c], ebx
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x54], ebx
mov dword [ecx + 0x58], ebx
mov dword [ecx + 0x5c], ebx
mov dword [ecx + 0x60], ebx
mov dword [ecx + 0x64], ebx
mov dword [ecx + 0x68], ebx
mov dword [ecx + 0x6c], ebx
mov dword [ecx + 0x70], ebx
mov dword [ecx + 0x74], ebx
mov dword [ecx + 0x78], ebx
mov dword [ecx + 0x7c], ebx
mov dword [ecx + 0x80], ebx
mov dword [ecx + 0x84], ebx
mov dword [ecx + 0x88], ebx
mov dword [ecx + 0x8c], ebx
mov dword [ecx + 0x90], ebx
mov dword [ecx + 0x94], ebx
mov dword [ecx + 0x98], ebx
mov dword [ecx + 0x9c], ebx
mov dword [ecx + 0xa0], ebx
mov dword [ecx + 0xa4], ebx
mov dword [ecx + 0xa8], ebx
mov dword [ecx + 0xac], ebx
mov dword [ecx + 0xb0], ebx
mov dword [ecx + 0xb4], ebx
mov dword [ecx + 0xb8], ebx
mov dword [ecx + 0xbc], ebx
mov dword [ecx + 0xc0], ebx
mov dword [ecx + 0xc4], ebx
mov dword [ecx + 0xc8], ebx
mov dword [ecx + 0xcc], ebx
mov dword [ecx + 0xd0], ebx
mov dword [ecx + 0xd4], ebx
mov dword [ecx + 0xd8], ebx
mov dword [ecx + 0xdc], ebx
mov dword [ecx + 0xe0], ebx
mov dword [ecx + 0xe4], ebx
mov dword [ecx + 0xe8], ebx
mov dword [ecx + 0xec], ebx
mov dword [ecx + 0xf0], ebx
mov dword [ecx + 0xf4], ebx
mov dword [ecx + 0xf8], ebx
mov dword [ecx + 0xfc], ebx
mov dword [ecx], eax
mov bl, 0x3f
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0xf
mov ecx, eax
cmp eax, 0x8000
jl 0x45830b
shr eax, 0xd
mov edx, dword [eax*4 + 0x4d769c]
mov eax, edx
shr edx, 0x10
add edi, edx
cmp ah, 0x41
je 0x458417
ja 0x45839e
neg edx
sub bl, ah
add edx, 0x10
and eax, 0xff
inc edi
bt ecx, edx
jae 0x4582dd
neg eax
mov ecx, dword [ebx*4 + 0x4d75b0]
mov edx, dword [esi + ecx*4]
imul eax, edx
mov dword [esp + ecx*4], eax
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0xf
mov ecx, eax
cmp eax, 0x8000
jge 0x4582a9
cmp eax, 0x800
jl 0x45831e
shr eax, 9
mov edx, dword [eax*4 + 0x4d76cc]
jmp 0x4582b3
cmp eax, 0x400
jl 0x458331
shr eax, 7
mov edx, dword [eax*4 + 0x4d77ac]
jmp 0x4582b3
cmp eax, 0x200
jl 0x458347
shr eax, 5
mov edx, dword [eax*4 + 0x4d77ac]
jmp 0x4582b3
cmp eax, 0x100
jl 0x45835d
shr eax, 4
mov edx, dword [eax*4 + 0x4d77ec]
jmp 0x4582b3
cmp eax, 0x80
jl 0x458373
shr eax, 3
mov edx, dword [eax*4 + 0x4d782c]
jmp 0x4582b3
cmp eax, 0x40
jl 0x458387
shr eax, 2
mov edx, dword [eax*4 + 0x4d786c]
jmp 0x4582b3
cmp eax, 0x20
jl 0x458417
shr eax, 1
mov edx, dword [eax*4 + 0x4d78ac]
jmp 0x4582b3
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x12
add edi, 0xe
sub bl, ah
dec bl
and eax, 0xff
jne 0x4583de
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
add edi, 8
jmp 0x4582dd
cmp eax, 0x80
jne 0x458407
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
add edi, 8
sub eax, 0x100
jmp 0x4582dd
jle 0x4582dd
sub eax, 0x100
jmp 0x4582dd
cmp bl, 0x3f
je 0x45856a
push esi
push ebp
push edi
lea esi, [esp + 0xc]
lea edi, [esp + 0x10c]
call fcn.00459ddc
lea esi, [esp + 0x2c]
lea edi, [esp + 0x110]
call fcn.00459ddc
lea esi, [esp + 0x4c]
lea edi, [esp + 0x114]
call fcn.00459ddc
lea esi, [esp + 0x6c]
lea edi, [esp + 0x118]
call fcn.00459ddc
lea esi, [esp + 0x8c]
lea edi, [esp + 0x11c]
call fcn.00459ddc
lea esi, [esp + 0xac]
lea edi, [esp + 0x120]
call fcn.00459ddc
lea esi, [esp + 0xcc]
lea edi, [esp + 0x124]
call fcn.00459ddc
lea esi, [esp + 0xec]
lea edi, [esp + 0x128]
call fcn.00459ddc
mov edi, dword [esp + 0x30c]
lea esi, [esp + 0x10c]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x130]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x154]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x178]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x19c]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x1c0]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x1e4]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x208]
call fcn.0045a005
mov eax, dword [esp + 0x310]
add edi, eax
pop edi
pop ebp
pop esi
add esp, 0x300
pop edx
pop ecx
ret
mov eax, dword [esp]
mov edx, dword [esp + 0x300]
sar eax, 0x11
mov ebx, dword [esp + 0x304]
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
add esp, 0x300
pop edx
pop ecx
ret