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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3c]
lea eax, [esi + 1]
cdq
push edi
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x3c]
push 8
push 0x5121f0
sar ebx, 1
push eax
mov dword [esp + 0x40], ebx
mov dword [0x649c18], eax
mov dword [0x649c1c], 0
call fcn.004c8648
push 0xd
call fcn.00457b30
push 4
push str.IHDR
push 0
call fcn.004579f0
push 4
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push str.IHDR
push eax
call fcn.004c8648
push esi
call fcn.00457b80
mov ecx, dword [esp + 0x70]
push ecx
call fcn.00457b80
mov eax, dword [0x649c1c]
push 1
lea edx, [esp + 0x74]
push edx
push eax
mov byte [esp + 0x7c], 4
call fcn.004579f0
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x80]
push ecx
push edx
mov dword [0x649c1c], eax
call fcn.004c8648
mov ecx, dword [0x649c1c]
add esp, 0x48
push 1
lea eax, [esp + 0x44]
push eax
push ecx
mov byte [esp + 0x4c], 3
call fcn.004579f0
push 1
lea edx, [esp + 0x50]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c1c]
push 1
lea ecx, [esp + 0x5c]
push ecx
push edx
mov byte [esp + 0x64], 0
call fcn.004579f0
mov ecx, dword [0x649c18]
mov dword [0x649c1c], eax
push 1
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.004c8648
mov byte [esp + 0x70], 0
push 1
lea edx, [esp + 0x74]
mov eax, dword [0x649c1c]
push edx
push eax
call fcn.004579f0
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x80]
push ecx
push edx
mov dword [0x649c1c], eax
call fcn.004c8648
mov ecx, dword [0x649c1c]
add esp, 0x48
push 1
lea eax, [esp + 0x44]
push eax
push ecx
mov byte [esp + 0x4c], 0
call fcn.004579f0
push 1
lea edx, [esp + 0x50]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
mov ecx, dword [0x649c1c]
push ecx
call fcn.00457b30
push 0x30
call fcn.00457b30
push 4
push str.PLTE
push 0
call fcn.004579f0
mov edx, dword [0x649c18]
push 4
push str.PLTE
push edx
mov dword [0x649c1c], eax
call fcn.004c8648
mov ebp, dword [esp + 0x80]
add esp, 0x38
mov edi, 0x10
xor esi, esi
jmp 0x457df0
mov eax, dword [ebp]
mov edx, dword [0x649c1c]
mov ecx, esi
shr eax, cl
push 1
lea ecx, [esp + 0x44]
push ecx
push edx
mov byte [esp + 0x4c], al
call fcn.004579f0
mov ecx, dword [0x649c18]
mov dword [0x649c1c], eax
push 1
lea eax, [esp + 0x50]
push eax
push ecx
call fcn.004c8648
add esi, 8
add esp, 0x18
cmp esi, 0x18
jl 0x457df0
add ebp, 4
sub edi, 1
jne 0x457de5
mov ecx, dword [0x649c18]
mov edx, dword [0x649c1c]
push 1
lea eax, [esp + 0x47]
push eax
push ecx
mov dword [esp + 0x4c], edx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x52]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x5d]
push ecx
push edx
call fcn.004c8648
mov ecx, dword [0x649c18]
push 1
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x77]
push edx
push eax
mov dword [esp + 0x7c], 0x10
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x82]
push ecx
push edx
call fcn.004c8648
mov ecx, dword [0x649c18]
add esp, 0x48
push 1
lea eax, [esp + 0x45]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x50]
push edx
push eax
call fcn.004c8648
push 4
push str.tRNS
push edi
call fcn.004579f0
mov ecx, dword [0x649c18]
push 4
push str.tRNS
push ecx
mov dword [0x649c1c], eax
call fcn.004c8648
add esp, 0x30
xor esi, esi
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx]
and eax, 0xf
cmp esi, eax
push 1
jne 0x457f4b
mov edx, dword [0x649c1c]
lea ecx, [esp + 0x44]
push ecx
push edx
mov byte [esp + 0x4c], 0
call fcn.004579f0
mov ecx, dword [0x649c18]
mov dword [0x649c1c], eax
push 1
lea eax, [esp + 0x50]
push eax
push ecx
jmp 0x457f73
mov eax, dword [0x649c1c]
lea edx, [esp + 0x44]
push edx
push eax
mov byte [esp + 0x4c], 0xff
call fcn.004579f0
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x50]
push ecx
mov dword [0x649c1c], eax
push edx
call fcn.004c8648
add esi, 1
add esp, 0x18
cmp esi, 0x10
jl 0x457f10
mov edx, dword [0x649c18]
mov eax, dword [0x649c1c]
push 1
lea ecx, [esp + 0x47]
push ecx
push edx
mov dword [esp + 0x4c], eax
call fcn.004c8648
mov ecx, dword [0x649c18]
push 1
lea eax, [esp + 0x52]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x5d]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.004c8648
mov eax, dword [esp + 0x74]
cdq
mov ecx, 0xa
idiv ecx
add esp, 0x30
mov esi, eax
mov dword [esp + 0x18], eax
lea eax, [ebx + 1]
lea ecx, [eax + eax*4]
imul eax, edx
mov dword [esp + 0x28], edx
mov edx, eax
add ecx, ecx
test edx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
je 0x458010
add esi, 1
mov dword [esp + 0x18], esi
lea eax, [ecx + 5]
imul eax, esi
add eax, 6
test edx, edx
je 0x458021
sub edx, ecx
add eax, edx
push 1
lea edx, [esp + 0x47]
mov dword [esp + 0x44], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x52]
push ecx
push edx
call fcn.004c8648
mov ecx, dword [0x649c18]
push 1
lea eax, [esp + 0x5d]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x68]
push edx
push eax
call fcn.004c8648
push 4
push str.IDAT
push 0
call fcn.004579f0
mov ecx, dword [0x649c18]
push 4
push str.IDAT
push ecx
mov dword [0x649c1c], eax
call fcn.004c8648
mov eax, dword [0x649c1c]
add esp, 0x48
push 1
lea edx, [esp + 0x45]
push edx
push eax
mov dword [esp + 0x4c], 0x7801
call fcn.004579f0
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x51]
push ecx
push edx
mov dword [0x649c1c], eax
call fcn.004c8648
mov ecx, dword [0x649c1c]
push 1
lea eax, [esp + 0x5c]
push eax
push ecx
call fcn.004579f0
push 1
lea edx, [esp + 0x68]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
xor edi, edi
add esp, 0x30
test esi, esi
mov ebp, 1
mov dword [esp + 0x10], 0xa
mov dword [esp + 0x20], edi
jle 0x45839f
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], ecx
jmp 0x458124
mov esi, dword [esp + 0x18]
mov ecx, dword [0x649c1c]
add esi, 0xffffffff
push 1
lea eax, [esp + 0x44]
cmp edi, esi
push eax
sete dl
push ecx
mov byte [esp + 0x4c], dl
call fcn.004579f0
push 1
lea edx, [esp + 0x50]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
add esp, 0x18
cmp edi, esi
jl 0x458173
mov esi, dword [esp + 0x24]
test esi, esi
je 0x458173
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
jmp 0x458177
mov esi, dword [esp + 0x2c]
mov ecx, dword [0x649c1c]
push 1
lea eax, [esp + 0x44]
movzx edx, si
push eax
push ecx
mov dword [esp + 0x4c], edx
call fcn.004579f0
push 1
lea edx, [esp + 0x50]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c1c]
push 1
lea ecx, [esp + 0x5d]
push ecx
push edx
call fcn.004579f0
mov ecx, dword [0x649c18]
mov dword [0x649c1c], eax
push 1
lea eax, [esp + 0x69]
push eax
push ecx
call fcn.004c8648
mov ecx, dword [0x649c1c]
not esi
push 1
lea eax, [esp + 0x74]
movzx edx, si
push eax
push ecx
mov dword [esp + 0x7c], edx
call fcn.004579f0
push 1
lea edx, [esp + 0x80]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c1c]
add esp, 0x48
push 1
lea ecx, [esp + 0x45]
push ecx
push edx
call fcn.004579f0
mov ecx, dword [0x649c18]
mov dword [0x649c1c], eax
push 1
lea eax, [esp + 0x51]
push eax
push ecx
call fcn.004c8648
add esp, 0x18
cmp dword [esp + 0x10], 0
mov dword [esp + 0x3c], 0
jle 0x458389
lea ecx, [ecx]
movzx esi, bp
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul edx, edx, 0xffff000f
mov ecx, ebp
shr ecx, 0x10
add ecx, esi
add esi, edx
mov eax, 0x80078071
mul ecx
mov eax, dword [0x649c1c]
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
push 1
lea edx, [esp + 0x44]
shl ecx, 0x10
push edx
or ecx, esi
push eax
mov ebp, ecx
mov byte [esp + 0x4c], 0
call fcn.004579f0
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x50]
push ecx
push edx
mov dword [0x649c1c], eax
call fcn.004c8648
add esp, 0x18
test ebx, ebx
jle 0x458374
mov edi, dword [esp + 0x14]
sub edi, dword [esp + 0x3c]
mov eax, ebx
imul eax, dword [esp + 0x44]
sub edi, 1
mov dword [esp + 0x30], eax
imul edi, ebx
mov dword [esp + 0x1c], ebx
jmp 0x4582e4
mov eax, dword [esp + 0x30]
cmp edi, eax
jge 0x4582f1
mov eax, dword [esp + 0x4c]
mov bl, byte [edi + eax]
jmp 0x4582f3
mov bl, 0xbb
movzx esi, bp
movzx edx, bl
add esi, edx
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul edx, edx, 0xffff000f
mov ecx, ebp
shr ecx, 0x10
add ecx, esi
add esi, edx
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
shl ecx, 0x10
or ecx, esi
push 1
lea eax, [esp + 0x44]
mov ebp, ecx
mov ecx, dword [0x649c1c]
push eax
push ecx
mov byte [esp + 0x4c], bl
call fcn.004579f0
push 1
lea edx, [esp + 0x50]
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push edx
push eax
call fcn.004c8648
add esp, 0x18
add edi, 1
sub dword [esp + 0x1c], 1
jne 0x4582e0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
jl 0x458250
sub dword [esp + 0x14], 0xa
add edi, 1
cmp edi, dword [esp + 0x18]
mov dword [esp + 0x20], edi
jl 0x458120
push ebp
call fcn.00457b80
push ebp
push str.zcrc___08x_n
call fcn.004b3dde
mov eax, dword [0x649c18]
mov ecx, dword [0x649c1c]
push 1
lea edx, [esp + 0x57]
push edx
push eax
mov dword [esp + 0x5c], ecx
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x62]
push ecx
push edx
call fcn.004c8648
mov ecx, dword [0x649c18]
push 1
lea eax, [esp + 0x6d]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x78]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x87]
push ecx
push edx
mov dword [esp + 0x8c], 0
call fcn.004c8648
mov ecx, dword [0x649c18]
add esp, 0x48
push 1
lea eax, [esp + 0x4a]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x55]
push edx
push eax
call fcn.004c8648
mov edx, dword [0x649c18]
push 1
lea ecx, [esp + 0x60]
push ecx
push edx
call fcn.004c8648
push 4
push str.IEND
push 0
call fcn.004579f0
push 4
mov dword [0x649c1c], eax
mov eax, dword [0x649c18]
push str.IEND
push eax
call fcn.004c8648
mov eax, dword [0x649c18]
mov ecx, dword [0x649c1c]
push 1
lea edx, [esp + 0x87]
push edx
push eax
mov dword [esp + 0x8c], ecx
call fcn.004c8648
mov edx, dword [0x649c18]
add esp, 0x48
push 1
lea ecx, [esp + 0x4a]
push ecx
push edx
call fcn.004c8648
mov ecx, dword [0x649c18]
push 1
lea eax, [esp + 0x55]
push eax
push ecx
call fcn.004c8648
mov eax, dword [0x649c18]
push 1
lea edx, [esp + 0x60]
push edx
push eax
call fcn.004c8648
add esp, 0x24
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret