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

Disassembly:
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x74]
push ebp
mov ebp, dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x74]
mov eax, dword [ebp]
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe8], 0xffffffff
cmp eax, 0x40108
ja 0x4772be
je 0x4772c5
test eax, eax
je 0x4772c5
cmp eax, 0x30401
je 0x4772c5
jmp 0x477341
cmp eax, 0x40202
jne 0x477341
test ebx, ebx
je 0x477341
mov ecx, dword [ebx]
cmp ecx, 0x3030103
je 0x477301
cmp ecx, 0x303011b
je 0x477301
push dword [ebp]
push ecx
push str.Unsupported_filter__lx_for__lx
push 0xffffffffffffffff
push dword [esp + 0x80]
call fcn.0047f6a0
add esp, 0x14
mov eax, 0xffffffe7
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov dword [esi + 0xe8], ecx
mov dword [esi + 0x4cfc], 0
cmp dword [ebx], 0x3030103
jne 0x477341
mov dword [esi + 0x4cfc], 0
mov dword [esi + 0x4d08], 0xffffffff
mov dword [esi + 0x4d0c], 0
mov dword [esi + 0x4d10], 5
push edi
cmp eax, 0x303011b
ja 0x47789b
je 0x4778d3
cmp eax, 0x30401
ja 0x477716
je 0x4775f9
cmp eax, 0x21
ja 0x477390
je 0x47739b
test eax, eax
je 0x477891
cmp eax, 3
je 0x4778d3
push eax
push str.Unknown_codec_ID:__lX
push 0xffffffffffffffff
push dword [esp + 0x80]
jmp 0x477942
cmp eax, 0x30101
jne 0x4778f9
xor edi, edi
cmp dword [esi + 0x148], edi
je 0x4773ba
lea eax, [esi + 0xf0]
push eax
call fcn.0048b780
add esp, 4
mov dword [esi + 0x148], edi
test ebx, ebx
je 0x4774fe
mov eax, dword [ebx]
mov dword [esi + 0xe8], eax
mov dword [esp + 0x38], edi
cmp eax, 0x3030401
ja 0x4774c0
je 0x4774b6
cmp eax, 0x303011b
ja 0x4774a1
je 0x477499
cmp eax, 3
je 0x477424
cmp eax, 0x3030103
jne 0x4778d3
cmp dword [esi + 0xe4], 0x21
jne 0x477416
mov dword [esp + 0x30], 4
jmp 0x4774f5
push esi
call fcn.0047a6d0
add esp, 4
jmp 0x4774fe
cmp dword [ebx + 0x18], 1
jne 0x477479
cmp dword [ebx + 0x1c], edi
jne 0x477479
xor eax, eax
mov dword [esp + 0x30], 3
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x34], edi
movzx eax, byte [eax]
inc eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x38], eax
jmp 0x4774f9
push str.Invalid_Delta_parameter
push 0xffffffffffffffff
push dword [esp + 0x7c]
call fcn.0047f6a0
add esp, 0xc
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov dword [esi + 0x4cfc], edi
jmp 0x4774fe
cmp eax, 0x3030205
jne 0x4778d3
mov dword [esp + 0x30], 5
jmp 0x4774f5
mov dword [esp + 0x30], 6
jmp 0x4774f5
cmp eax, 0x3030501
je 0x4774ed
cmp eax, 0x3030701
je 0x4774e3
cmp eax, 0x3030805
jne 0x4778d3
mov dword [esp + 0x30], 9
jmp 0x4774f5
mov dword [esp + 0x30], 8
jmp 0x4774f5
mov dword [esp + 0x30], 7
mov dword [esp + 0x34], edi
mov edi, 1
mov eax, edi
lea ebx, [esp + 0x30]
shl eax, 4
add ebx, eax
cmp dword [esi + 0xe4], 0x21
jne 0x477521
mov dword [ebx], 0x21
mov dword [ebx + 4], 0
jmp 0x47752e
mov dword [ebx], 1
mov dword [ebx + 4], 0x40000000
push dword [ebp + 0x18]
mov dword [esp + eax + 0x3c], 0
push dword [ebp + 0x20]
push 0
push ebx
call fcn.0048bdf0
add esp, 0x10
test eax, eax
je 0x477565
push eax
push dword [esp + 0x78]
call fcn.00479730
add esp, 8
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
inc edi
lea eax, [esp + 0x30]
add edi, edi
push eax
lea eax, [esi + 0xf0]
push eax
mov dword [esp + edi*8 + 0x38], 0xffffffff
mov dword [esp + edi*8 + 0x3c], 0xffffffff
mov dword [esp + edi*8 + 0x40], 0
call fcn.0048be70
push dword [ebx + 8]
mov edi, eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0xc
test edi, edi
je 0x4775bd
push edi
push dword [esp + 0x78]
call fcn.00479730
add esp, 8
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
pop edi
mov dword [esi + 0x148], 1
xor eax, eax
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
cmp dword [esi + 0x4cf8], 0
je 0x47761c
lea eax, [esi + 0x1c0]
push eax
call dword [0x4f82cc]
add esp, 4
mov dword [esi + 0x4cf8], 0
cmp dword [ebp + 0x1c], 0
ja 0x47764a
jb 0x47762a
cmp dword [ebp + 0x18], 5
jae 0x47764a
push str.Malformed_PPMd_parameter
push 0xffffffffffffffff
push dword [esp + 0x7c]
call fcn.0047f6a0
add esp, 0xc
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [ebp + 0x20]
movzx ebp, byte [eax]
inc eax
push eax
call fcn.00475620
lea ecx, [ebp - 2]
add esp, 4
mov ebx, eax
cmp ecx, 0x3e
ja 0x47762a
lea ecx, [ebx - 0x800]
cmp ecx, 0xfffff7db
ja 0x47762a
lea edi, [esi + 0x1c0]
push edi
call dword [0x4f82c4]
push ebx
push edi
call dword [0x4f82c8]
add esp, 0xc
test eax, eax
jne 0x4776ae
push str.Coludnt_allocate_memory_for_PPMd
push 0xc
push dword [esp + 0x7c]
call fcn.0047f6a0
add esp, 0xc
mov eax, 0xffffffe2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push ebp
push edi
call dword [0x4f82d0]
lea eax, [esi + 0x4c8c]
push eax
call dword [0x4f82d4]
add esp, 0xc
mov dword [esi + 0x4cf8], 1
mov dword [esi + 0x1bc], 0
xor eax, eax
mov dword [esi + 0x4cf0], 0
mov dword [esi + 0x4cc8], 0
pop edi
mov dword [esi + 0x4ccc], 0
mov dword [esi + 0x4ce8], 0
mov dword [esi + 0x4cec], 0
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
cmp eax, 0x40108
je 0x477823
cmp eax, 0x40202
je 0x477747
cmp eax, 0x3030103
je 0x4778d3
push eax
push str.Unknown_codec_ID:__lX
push 0xffffffffffffffff
push dword [esp + 0x80]
jmp 0x477942
cmp dword [esi + 0x17c], 0
je 0x477766
lea eax, [esi + 0x14c]
push eax
call fcn.00495630
mov dword [esi + 0x17c], 0
push 0
push 0
lea edi, [esi + 0x14c]
push edi
call fcn.004956c0
cmp eax, 0xfffffffd
jne 0x477785
push 1
push 0
push edi
call fcn.004956c0
test eax, eax
je 0x4777e7
or ecx, 0xffffffff
cmp eax, 0xfffffff7
je 0x4777b5
cmp eax, 0xfffffffd
je 0x4777a9
cmp eax, 0xfffffffe
jne 0x4777a2
mov eax, str.invalid_setup_parameter
jmp 0x4777ba
mov eax, 0x4f05d0
jmp 0x4777ba
mov ecx, 0xc
mov eax, 0x4f05a8
jmp 0x4777ba
mov eax, str.mis_compiled_library
push eax
push str.Internal_error_initializing_decompressor:__s
push ecx
push dword [esp + 0x80]
call fcn.0047f6a0
add esp, 0x10
mov dword [esi + 0x17c], 0
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
pop edi
mov dword [esi + 0x17c], 1
xor eax, eax
mov dword [esi + 0x154], 0
mov dword [esi + 0x158], 0
mov dword [esi + 0x164], 0
mov dword [esi + 0x168], 0
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
cmp dword [esi + 0x1b8], 0
lea eax, [esi + 0x180]
je 0x47783d
push eax
call fcn.00470cf0
add esp, 4
jmp 0x47784f
push 0x38
push 0x4efc70
push 0xfffffffffffffff1
push eax
call fcn.00470c30
add esp, 0x10
test eax, eax
je 0x477873
push str.Couldnt_initialize_zlib_stream.
push 0xffffffffffffffff
push dword [esp + 0x7c]
call fcn.0047f6a0
add esp, 0xc
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov dword [esi + 0x1b8], 1
mov dword [esi + 0x188], 0
mov dword [esi + 0x194], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret
cmp eax, 0x3030805
ja 0x4778e4
je 0x4778d3
cmp eax, 0x3030501
ja 0x4778cc
je 0x4778d3
cmp eax, 0x3030205
je 0x4778d3
cmp eax, 0x3030401
je 0x4778d3
push eax
push str.Unknown_codec_ID:__lX
push 0xffffffffffffffff
push dword [esp + 0x80]
jmp 0x477942
cmp eax, 0x3030701
jne 0x4778f9
push eax
push str.Unexpected_codec_ID:__lX
push 0xffffffffffffffff
push dword [esp + 0x80]
jmp 0x477942
cmp eax, 0x6f10101
je 0x47790a
cmp eax, 0x6f10303
je 0x47790a
cmp eax, 0x6f10701
je 0x47790a
push eax
push str.Unknown_codec_ID:__lX
push 0xffffffffffffffff
push dword [esp + 0x80]
jmp 0x477942
mov edi, dword [esp + 0x74]
mov eax, dword [edi + 0x60]
test eax, eax
je 0x477934
push 1
push eax
call fcn.0047b710
push 1
push dword [edi + 0x60]
call fcn.0047b6f0
add esp, 0x10
mov dword [esi + 0x4fac], 1
push dword [esi + 0xe4]
push str.Crypto_codec_not_supported_yet__ID:_0x_lX_
push 0xffffffffffffffff
push edi
call fcn.0047f6a0
add esp, 0x10
mov eax, 0xffffffe7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret