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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14c
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x168]
test ecx, ecx
jg 0x457ba0
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
test esi, esi
je 0x457b93
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.005493e0
mov edi, dword [ebx + 0x30]
mov dword [esp + 0x2c], 0x59fff4
test edi, edi
mov dword [esp + 0x28], eax
jne 0x457e10
mov edi, dword [ebx + 0x348]
xor ebp, ebp
cmp edi, 0xffffff9d
je 0x457c1a
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x458440
mov ecx, dword [eax + 0x30]
xor ebp, ebp
test ecx, ecx
je 0x457c1a
mov eax, dword [ecx]
cmp eax, 0xffffff9d
je 0x457c1a
cmp edi, eax
mov eax, ecx
je 0x4581c8
lea ebp, [ecx + 8]
jmp 0x457c0b
add eax, 8
cmp edi, edx
je 0x4581c8
mov edx, eax
sub edx, ecx
mov edx, dword [ebp + edx]
cmp edx, 0xffffff9d
jne 0x457c00
xor ebp, ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x164]
mov dword [esp + 8], str._s:__s
test eax, eax
mov eax, 0x5a1468
cmovne eax, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov dword [esp], esi
call fcn.0053c530
xor byte [esi], 0x20
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x457c75
mov edi, dword [eax]
mov ecx, dword [esp + 0x2c]
mov dword [esp], edi
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x458198
test ebp, ebp
je 0x457ca4
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.___s_
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
mov edi, dword [ebx + 0x34]
test edi, edi
jne 0x457e30
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x457fac
jle 0x458213
cmp eax, 2
je 0x457d80
cmp eax, 3
lea esi, [esi]
jne 0x457b93
mov edi, dword [ebx + 0x78]
test edi, edi
jne 0x4584a0
mov eax, dword [esp + 0x16c]
test eax, eax
je 0x457d01
mov eax, dword [ebx + 0x58]
test ah, 2
jne 0x458411
test ah, 4
jne 0x4583e5
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x458161
jle 0x4583d0
cmp eax, 4
jg 0x457d26
mov edi, dword [ebx + 0x48]
test edi, edi
lea esi, [esi]
jne 0x4581d0
mov ebx, dword [ebx + 0x21c]
test ebx, ebx
jle 0x457b93
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, 0x10624dd3
mov dword [esp + 8], str.__max.__d_kb_s
mov ecx, eax
mov eax, ebx
imul edx
mov eax, dword [esp + 0x164]
add esi, ecx
sar ebx, 0x1f
mov dword [esp], esi
sar edx, 6
sub eax, ecx
sub edx, ebx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call fcn.0053c530
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00539c60
cmp eax, 0x2f
jle 0x457ce1
mov edi, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x68]
mov edx, edi
sar edx, 0x1f
mov dword [esp + 0xc], edx
mov edx, eax
sar edx, 0x1f
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x28], eax
call fcn.0053abb0
test eax, eax
mov ebp, eax
je 0x457ce1
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, edi
sar edx, 0x1f
mov dword [esp + 8], str.___d__d
mov ecx, eax
mov eax, edi
idiv ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov edx, eax
sar edx, 0x1f
idiv ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x164]
sub eax, ecx
add ecx, esi
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0053c530
jmp 0x457ce1
mov dword [esp], edi
call fcn.0045a9f0
test eax, eax
je 0x4585b0
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
jmp 0x457bc6
mov eax, edi
and eax, 0xff
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x457e4b
lea edx, [eax - 0x61]
cmp edx, 0x19
ja 0x458125
mov edx, 0x5a002d
lea ebp, [esp + 0x38]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x20
mov dword [esp], ebp
call fcn.0053c530
lea edx, [ebp + eax]
mov dword [esp + 0x2c], edx
xor edx, edx
cmp eax, 0x1f
ja 0x457e7f
mov dl, 0x20
sub edx, eax
shr edi, 8
mov dword [esp + 0x28], edi
movzx eax, byte [esp + 0x28]
lea ecx, [eax - 0x61]
cmp ecx, 0x19
jbe 0x457e9f
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4580a0
mov ecx, 0x5a002d
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], eax
mov dword [esp], ecx
call fcn.0053c530
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edi, edx
sub edi, eax
add ecx, eax
mov dword [esp + 0x2c], edi
xor edi, edi
cmp edx, eax
mov edx, dword [esp + 0x28]
cmova edi, dword [esp + 0x2c]
shr edx, 8
movzx eax, dl
mov dword [esp + 0x28], edx
lea edx, [eax - 0x61]
cmp edx, 0x19
jbe 0x457efd
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4580e0
mov dword [esp + 0x20], 0x5a002d
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 8], eax
call fcn.0053c530
mov ecx, dword [esp + 0x24]
xor edx, edx
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, edi
sub ecx, eax
cmp edi, eax
mov edi, dword [esp + 0x28]
cmova edx, ecx
shr edi, 8
lea eax, [edi - 0x61]
cmp eax, 0x19
jbe 0x457f51
lea eax, [edi - 0x30]
cmp eax, 9
ja 0x458060
mov eax, 0x5a002d
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.0053c530
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebx + 0x34]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.___s___0x_04X_
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
mov eax, dword [ebx + 8]
cmp eax, 1
jne 0x457cbb
mov edi, dword [ebx + 0x19c]
test edi, edi
jne 0x458470
mov edx, dword [esp + 0x164]
mov dword [esp + 4], 0x5a14e6
mov dword [esp], esi
mov dword [esp + 8], edx
call fcn.0053a510
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebx + 0x1c0]
mov ecx, dword [ebx + 0x1c4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov edx, dword [ebx + 0x1a0]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00538eb0
mov eax, dword [ebx + 0x1a4]
cmp eax, 0xffffffff
je 0x457ce1
mov dword [esp], eax
call fcn.00537ce0
mov dword [esp], esi
mov edi, eax
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___s
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457ce1
lea ecx, [edi - 0x41]
mov eax, 0x5a002d
cmp ecx, 0x19
jbe 0x457f56
cmp edi, 0x20
je 0x457f51
cmp edi, 0x2e
je 0x457f51
cmp edi, 0x2d
je 0x457f56
cmp edi, 0x5f
mov ecx, str.__d_
cmovne eax, ecx
jmp 0x457f56
lea edi, [eax - 0x41]
mov ecx, 0x5a002d
cmp edi, 0x19
jbe 0x457ea4
cmp eax, 0x20
je 0x457e9f
cmp eax, 0x2e
je 0x457e9f
cmp eax, 0x2d
je 0x457ea4
cmp eax, 0x5f
mov edi, str.__d_
cmovne ecx, edi
jmp 0x457ea4
lea edx, [eax - 0x41]
cmp edx, 0x19
mov dword [esp + 0x20], 0x5a002d
jbe 0x457f05
cmp eax, 0x20
je 0x457efd
cmp eax, 0x2e
je 0x457efd
cmp eax, 0x2d
je 0x457f05
cmp eax, 0x5f
mov edx, str.__d_
cmove edx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
jmp 0x457f05
lea ecx, [eax - 0x41]
mov edx, 0x5a002d
cmp ecx, 0x19
jbe 0x457e50
cmp eax, 0x20
je 0x457e4b
cmp eax, 0x2e
je 0x457e4b
cmp eax, 0x2d
je 0x457e50
cmp eax, 0x5f
mov ecx, str.__d_
cmovne edx, ecx
jmp 0x457e50
mov edx, dword [ebx + 0x30]
lea ecx, [edx - 0x11000]
cmp ecx, 0x11
jbe 0x458395
mov dword [esp], edx
call fcn.004565f0
test eax, eax
je 0x457d18
mov edi, dword [ebx + 0x19c]
imul edi, dword [ebx + 0x1a0]
imul edi, eax
jmp 0x457d1b
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___s_
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457c75
mov ebp, dword [eax + 4]
jmp 0x457c1a
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, 0x10624dd3
mov dword [esp + 8], str.___d_kb_s
mov ecx, eax
mov eax, edi
imul edx
mov eax, dword [esp + 0x164]
sar edi, 0x1f
sar edx, 6
sub eax, ecx
sub edx, edi
add ecx, esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0053c530
jmp 0x457b93
test eax, eax
jne 0x457b93
mov edx, dword [ebx + 0x8c]
cmp edx, 0xffffffff
je 0x45833b
lea edi, [esp + 0x3c]
mov ecx, 0x3f
rep stosd dword es:[edi], eax
lea ebp, [esp + 0x38]
mov dword [esp], edx
mov dword [esp + 0x38], 0x28
call fcn.00543910
mov dword [esp], esi
mov edi, eax
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___s
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
mov edi, dword [ebx + 0x31c]
test edi, edi
jne 0x4585ec
mov eax, dword [ebx + 0x18c]
test eax, eax
je 0x4582b2
cmp eax, 1
mov edx, str.tv_
mov eax, str.pc_
cmovne edx, eax
mov dword [esp + 8], edx
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.0053a5b0
mov eax, dword [ebx + 0x188]
mov dword [esp], eax
call fcn.005460b0
test eax, eax
je 0x4582e0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x5a14a4
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.0053a5b0
mov edx, ebp
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4582e2
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
sbb edx, 3
sub edx, ebp
cmp edx, 1
jbe 0x45833b
mov ecx, dword [esp + 0x164]
mov byte [esp + edx + 0x36], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x5a14a9
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.0053a5b0
mov edi, dword [ebx + 0x78]
test edi, edi
jne 0x4584d7
mov eax, dword [esp + 0x16c]
test eax, eax
je 0x457d01
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebx + 0x1f8]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0x1f4]
mov dword [esp + 8], str.__q_d__d
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457cec
shl eax, cl
mov ecx, eax
mov eax, 4
test ecx, 0xa043
jne 0x458183
test ecx, 0x20000
mov al, 2
jne 0x458183
and ecx, 0x10000
mov al, 3
jne 0x458183
jmp 0x458173
test eax, eax
je 0x457d18
nop
lea esi, [esi]
jmp 0x457d26
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 8], str.__pass_2
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457d01
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 8], str.__pass_1
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
mov eax, dword [ebx + 0x58]
jmp 0x457cf8
mov edx, dword [esp + 0x16c]
mov eax, dword [ebx + 0x30]
test edx, edx
je 0x4585a0
mov edx, 1
call fcn.00451060
test eax, eax
jne 0x457bde
xor ebp, ebp
jmp 0x457c1a
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x164]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___d_Hz
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457fba
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebx + 0x7c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___dx_d
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x457ce1
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebx + 0x7c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.___dx_d
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x458633
call fcn.00539c60
cmp eax, 0x2f
jle 0x458346
mov edi, dword [ebx + 0x6c]
mov ebp, dword [ebx + 0x68]
mov ecx, edi
mov eax, ebp
sar ecx, 0x1f
sar eax, 0x1f
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0053abb0
mov dword [esp], esi
mov dword [esp + 0x28], eax
call sub.msvcrt.dll_strlen
mov edx, edi
sar edx, 0x1f
mov dword [esp + 8], str.___d__d
mov ecx, eax
mov eax, edi
idiv dword [esp + 0x28]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x10], eax
mov eax, ebp
idiv dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x164]
sub eax, ecx
add ecx, esi
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0053c530
jmp 0x458346
xor edx, edx
call fcn.00451060
jmp 0x45845c
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.Codec_0x_x_is_not_in_the_full_list._n
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00539bd0
xor edx, edx
mov eax, edi
call fcn.00451060
test eax, eax
je 0x4586db
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x457bc6
mov eax, dword [ebx + 0x8c]
mov dword [esp], eax
call fcn.00543bf0
movzx eax, byte [eax + 9]
shr al, 3
and eax, 0xf
cmp edi, eax
jg 0x458284
mov eax, dword [ebx + 0x31c]
mov dword [esp + 8], str._d_bpc_
mov dword [esp + 4], 0x100
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0053a5b0
jmp 0x458284
mov dword [esp + 0x18], 0x100000
mov dword [esp + 0x1c], 0
mov edx, dword [ebx + 0x7c]
imul edx, dword [ebx + 0xe4]
mov edi, edx
sar edi, 0x1f
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
imul eax, dword [ebx + 0x78]
mov edx, eax
sar edx, 0x1f
mov dword [esp + 8], eax
lea eax, [esp + 0x138]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x13c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053b810
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x138]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0xe4]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0xe0]
mov dword [esp + 8], str.__SAR__d:_d_DAR__d:_d_
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x164]
sub edx, eax
add eax, esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053c530
jmp 0x458517
mov dword [esp], edi
call fcn.00456180
mov dword [esp + 0x2c], str.unknown_codec
test eax, eax
jne 0x4585e1
jmp 0x457bc6