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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1434
call fcn.004ef140
mov eax, dword [0x54f018]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
or dword [ebp - 0x13c8], 0xffffffff
or dword [ebp - 0x13c0], 0xffffffff
push ebx
push esi
push edi
mov esi, ecx
mov ebx, dword [esi + 8]
xor edi, edi
push 0x55e1fc
push eax
mov dword [ebp - 0x13f4], eax
mov dword [ebp - 0x13d8], edi
mov dword [ebp - 0x13fc], edi
mov dword [ebp - 0x13e0], ebx
mov dword [ebp - 0x13d4], edi
mov dword [ebp - 0x13f8], edi
call dword [sym.imp.MSVCR100.dll_fopen]
pop ecx
pop ecx
xor ecx, ecx
cmp eax, edi
setne cl
inc edi
mov dword [ebp - 0x13cc], eax
mov dword [ebp - 0x13c4], ecx
cmp dword [ebp + 0xc], edi
jne 0x4f1ef3
push esi
lea eax, [esi + 4]
push eax
push str._d__d
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fscanf]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, ebx
imul edx, eax
add esp, 0x10
imul ebx, ecx
mov dword [ebp - 0x13c8], eax
mov dword [ebp - 0x13c0], ecx
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x60], eax
and dword [esi + 0x1c], 0
mov dword [esi + 0x18], edi
mov dword [esi + 0x20], 7
mov dword [esi + 0x24], 5
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], 0x1f
mov dword [esi + 0x40], 0x14
mov dword [esi + 0x4c], 2
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], 3
mov dword [esi + 0xd8], edi
mov dword [esi + 0xd4], edi
mov dword [esi + 0xe0], edi
mov dword [esi + 0x28], 6
mov dword [esi + 0x2c], 4
cmp dword [ebp - 0x13c4], edi
jne 0x4f28a7
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4f2cb4
mov ebx, dword [ebp - 0x13c8]
cmp dword [ebp - 0x13d8], 0
je 0x4f1f9b
cmp dword [ebp - 0x13fc], 0
jne 0x4f2cb4
mov ebx, dword [ebp - 0x13c8]
lea eax, [ebp - 0x13a8]
push str.CODE_RATE_ID
push eax
call fcn.004ef4ee
pop ecx
pop ecx
test eax, eax
je 0x4f2009
lea eax, [ebp - 0xc]
push eax
push 0x55f240
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fscanf]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x13e0]
mov ebx, eax
and ebx, 0x1f
imul ecx, ebx
sar eax, 5
add eax, 0x44
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp - 0x13e0]
add esp, 0xc
imul ecx, eax
mov dword [ebp - 0x13c8], ebx
mov dword [ebp - 0x13c0], eax
mov dword [esi + 4], ebx
mov dword [esi], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x60], ebx
jmp 0x4f283d
lea eax, [ebp - 0x13a8]
push str.H_MATRIX_FOR_LDPC_DECODER
push eax
call fcn.004ef4ee
pop ecx
pop ecx
test eax, eax
je 0x4f22fe
and dword [ebp - 0x13c4], 0
cmp ebx, 0xffffffff
je 0x4f2880
cmp dword [ebp - 0x13c0], 0xffffffff
je 0x4f2880
mov edi, dword [ebp - 0x13c0]
add edi, 2
imul edi, ebx
add edi, edi
push edi
call sub.MSVCR100.dll_malloc
pop ecx
xor ecx, ecx
mov dword [esi + 0x84], eax
lea eax, [eax + ebx*4]
test ebx, ebx
jle 0x4f207c
mov edx, dword [esi + 0x84]
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0x13c0]
inc ecx
lea eax, [eax + edx*2]
cmp ecx, ebx
jl 0x4f2065
push edi
call sub.MSVCR100.dll_malloc
pop ecx
xor ecx, ecx
mov dword [esi + 0x88], eax
lea eax, [eax + ebx*4]
test ebx, ebx
jle 0x4f20aa
mov edx, dword [ebp - 0x13c0]
add edx, edx
mov edi, dword [esi + 0x88]
mov dword [edi + ecx*4], eax
inc ecx
add eax, edx
cmp ecx, ebx
jl 0x4f209a
mov eax, dword [esi + 0x14]
lea eax, [eax*4 + 4]
push eax
call sub.MSVCR100.dll_malloc
and dword [ebp - 0x13bc], 0
mov dword [esi + 0x78], eax
and dword [eax], 0
pop ecx
test ebx, ebx
jle 0x4f21d8
and dword [ebp - 0x13d0], 0
xor eax, eax
mov dword [ebp - 0x13b8], eax
mov dword [ebp - 0x13dc], eax
cmp dword [ebp - 0x13c0], eax
jle 0x4f217a
mov eax, dword [esi + 0x84]
mov edi, dword [ebp - 0x13bc]
mov ebx, dword [ebp - 0x13dc]
mov eax, dword [eax + edi*4]
add ebx, ebx
add eax, ebx
push eax
push str._hd
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fscanf]
mov eax, dword [esi + 0x84]
mov eax, dword [eax + edi*4]
movzx ecx, word [ebx + eax]
movsx eax, cx
add esp, 0xc
cmp eax, dword [ebp - 0x13d4]
jle 0x4f213d
mov dword [ebp - 0x13d4], eax
mov eax, dword [esi + 0x88]
mov eax, dword [eax + edi*4]
cmp cx, 0xffff
je 0x4f215b
mov cx, word [ebp - 0x13b8]
inc dword [ebp - 0x13b8]
jmp 0x4f215e
or ecx, 0xffffffff
inc dword [ebp - 0x13dc]
mov word [ebx + eax], cx
mov eax, dword [ebp - 0x13dc]
cmp eax, dword [ebp - 0x13c0]
jl 0x4f20f1
mov eax, dword [ebp - 0x13b8]
cmp eax, dword [ebp - 0x13c4]
jle 0x4f218e
mov dword [ebp - 0x13c4], eax
mov edi, dword [ebp - 0x13e0]
test edi, edi
jle 0x4f21b5
mov ecx, dword [ebp - 0x13d0]
mov edx, edi
mov eax, dword [esi + 0x78]
mov ebx, dword [eax + ecx]
add ebx, dword [ebp - 0x13b8]
add ecx, 4
dec edx
mov dword [eax + ecx], ebx
jne 0x4f21a0
inc dword [ebp - 0x13bc]
mov eax, edi
shl eax, 2
add dword [ebp - 0x13d0], eax
mov eax, dword [ebp - 0x13bc]
cmp eax, dword [ebp - 0x13c8]
jl 0x4f20d7
mov eax, dword [ebp - 0x13d4]
cmp eax, dword [esi + 8]
jge 0x4f2865
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x14]
mov eax, dword [ecx + eax*4]
shl eax, 2
push eax
call sub.MSVCR100.dll_malloc
mov dword [esi + 0x7c], eax
mov edx, eax
xor eax, eax
pop ecx
mov dword [ebp - 0x13dc], eax
cmp dword [ebp - 0x13c8], eax
jle 0x4f22d9
mov edi, dword [ebp - 0x13e0]
mov dword [ebp - 0x13b8], eax
cmp edi, eax
jle 0x4f22c1
mov dword [ebp - 0x13bc], eax
cmp dword [ebp - 0x13c0], eax
jle 0x4f22af
mov ecx, edi
mov dword [ebp - 0x13d0], eax
neg ecx
mov ebx, dword [ebp - 0x13dc]
mov eax, dword [esi + 0x84]
mov eax, dword [eax + ebx*4]
mov ebx, dword [ebp - 0x13bc]
movzx eax, word [eax + ebx*2]
cmp ax, 0xffff
je 0x4f228b
mov ebx, dword [ebp - 0x13b8]
cwde
add ebx, eax
dec edi
cmp ebx, edi
jle 0x4f2278
add eax, ecx
add eax, dword [ebp - 0x13b8]
mov dword [edx], eax
jmp 0x4f2288
mov edi, dword [ebp - 0x13d0]
add edi, eax
add edi, dword [ebp - 0x13b8]
mov dword [edx], edi
add edx, 4
inc dword [ebp - 0x13bc]
mov edi, dword [ebp - 0x13e0]
mov eax, dword [ebp - 0x13bc]
add dword [ebp - 0x13d0], edi
add ecx, edi
cmp eax, dword [ebp - 0x13c0]
jl 0x4f223f
xor eax, eax
inc dword [ebp - 0x13b8]
cmp dword [ebp - 0x13b8], edi
jl 0x4f2227
inc dword [ebp - 0x13dc]
mov ecx, dword [ebp - 0x13dc]
cmp ecx, dword [ebp - 0x13c8]
jl 0x4f2213
mov eax, dword [ebp - 0x13c4]
shl eax, 2
push eax
call sub.MSVCR100.dll_malloc
pop ecx
mov dword [esi + 0xb0], eax
mov dword [ebp - 0x13d8], 1
jmp 0x4f278c
lea eax, [ebp - 0x13a8]
push str.P2_FORMAT_FOR_LDPC_DECODER
push eax
call fcn.004ef4ee
pop ecx
pop ecx
test eax, eax
je 0x4f2553
and dword [ebp - 0x13c4], 0
and dword [ebp - 0x13d0], 0
cmp ebx, 0xffffffff
je 0x4f289a
mov edi, dword [ebp - 0x13c0]
cmp edi, 0xffffffff
je 0x4f289a
imul edi, ebx
shl edi, 6
push edi
call sub.MSVCR100.dll_malloc
push edi
push 0
push eax
mov dword [ebp - 0x13fc], eax
mov dword [esi + 0x8c], eax
call sub.MSVCR100.dll_memset
add esp, 0x10
cmp dword [ebp + 0xc], 0
je 0x4f238a
push 6
pop edi
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
dec edi
jne 0x4f236c
mov edi, dword [ebp - 0x13fc]
and dword [ebp - 0x13bc], 0
add edi, 0x16
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
cmp dword [ebp + 0xc], 0
jne 0x4f24d2
xor edx, edx
lea ebx, [ebp - 0x1c]
mov al, byte [ebp + edx - 0x13a8]
cmp al, 0x39
movsx eax, al
jle 0x4f23da
and eax, 0xffffffdf
sub eax, 0x37
jmp 0x4f23dd
sub eax, 0x30
mov cl, byte [ebp + edx - 0x13a7]
shl al, 4
cmp cl, 0x39
mov byte [ebx], al
movsx ecx, cl
jle 0x4f23f9
and ecx, 0xffffffdf
sub ecx, 0x37
jmp 0x4f23fc
sub ecx, 0x30
or al, cl
mov byte [ebx], al
dec ebx
add edx, 2
cmp edx, 0xa
jl 0x4f23c4
mov ecx, dword [ebp - 0x1c]
xor edx, edx
inc edx
mov eax, ecx
shr eax, 5
and ax, dx
mov word [edi - 0x16], ax
and dword [ebp - 0x13fc], 0
mov eax, ecx
shr eax, 4
mov ebx, eax
and ebx, edx
mov word [edi - 0x14], bx
mov ebx, ecx
shr ebx, 3
and bx, dx
mov word [edi - 0x12], bx
mov ebx, ecx
shr ebx, 1
and bx, dx
mov edx, dword [ebp - 0x20]
mov word [edi - 0x10], bx
mov ebx, ecx
shrd edx, ebx, 0x1c
and dx, 0x1f
shr ebx, 0x1c
and eax, 1
mov word [edi - 0xe], dx
mov dx, word [ebp - 0x13c4]
push 0
mov dword [ebp - 0x1400], eax
mov word [edi - 0xc], dx
pop eax
je 0x4f247d
test eax, eax
jne 0x4f247d
inc dword [ebp - 0x13c4]
mov eax, dword [ebp - 0x20]
mov ebx, ecx
mov edx, eax
shrd edx, ebx, 0x10
and dx, 0x7f
mov word [edi - 0xa], dx
movzx edx, ah
mov word [edi - 8], dx
mov edx, ecx
shr edx, 2
and dx, 1
mov word [edi - 6], dx
xor edx, edx
mov word [edi - 4], dx
mov edx, eax
shrd edx, ecx, 0x17
shr ebx, 0x10
mov ebx, dword [ebp - 0x13c8]
and dx, 0x1f
movzx eax, al
shr ecx, 0x17
xor ecx, ecx
mov word [edi - 2], dx
mov word [edi], cx
mov word [edi + 2], ax
jmp 0x4f2517
lea ecx, [edi + 2]
push ecx
push edi
lea ecx, [edi - 2]
push ecx
lea ecx, [edi - 4]
push ecx
lea ecx, [edi - 6]
push ecx
lea ecx, [edi - 8]
push ecx
lea ecx, [edi - 0xa]
push ecx
lea ecx, [edi - 0xc]
push ecx
lea ecx, [edi - 0xe]
push ecx
lea ecx, [edi - 0x10]
push ecx
lea ecx, [edi - 0x12]
push ecx
lea ecx, [edi - 0x14]
push ecx
lea eax, [edi - 0x16]
push eax
push str._hd__hd__hd__hd__hd__hd__hd__hd__hd__hd__hd__hd__hd
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fscanf]
add esp, 0x3c
xor eax, eax
inc eax
cmp word [edi - 0x16], ax
jne 0x4f2526
inc dword [ebp - 0x13d0]
inc dword [ebp - 0x13bc]
add edi, 0x20
cmp dword [ebp - 0x13d0], 5
jne 0x4f239a
mov ecx, dword [ebp - 0x13bc]
mov dword [esi + 0x90], ecx
mov dword [ebp - 0x13fc], eax
jmp 0x4f283d
lea eax, [ebp - 0x13a8]
push str.P1_FORMAT_FOR_LDPC_DECODER
push eax
call fcn.004ef4ee
pop ecx
pop ecx
test eax, eax
je 0x4f283d
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
jne 0x4f2797
mov eax, 0xd7459ad7
mov dword [ebp - 0x13f0], eax
mov dword [ebp - 0x13ec], eax
mov dword [ebp - 0x13e8], 1
mov dword [ebp - 0x13e4], ecx
cmp dword [ebp - 0x13c0], ecx
jle 0x4f283d
mov eax, dword [ebp - 0x13c0]
lea edi, [esi + 0x4c4]
mov dword [ebp - 0x13c4], eax
mov ebx, dword [sym.imp.MSVCR100.dll_fscanf]
lea eax, [ebp - 0x13b4]
push eax
push 0x55f374
push dword [ebp - 0x13cc]
call ebx
lea eax, [ebp - 0x13b0]
push eax
push 0x55f378
push dword [ebp - 0x13cc]
call ebx
lea eax, [ebp - 0x13ac]
push eax
push 0x55f37c
push dword [ebp - 0x13cc]
call ebx
mov eax, dword [ebp - 0x13b0]
xor ecx, ecx
or eax, ecx
mov ecx, dword [ebp - 0x13b4]
xor ebx, ebx
or ebx, dword [ebp - 0x13ac]
mov dword [ebp - 0x1428], ecx
mov dword [ebp - 0x1420], ebx
xor ebx, dword [ebp - 0x13f0]
mov edx, eax
xor edx, dword [ebp - 0x13ec]
mov dword [ebp - 0x1418], ebx
mov ebx, edx
mov edx, dword [ebp - 0x1428]
xor edx, dword [ebp - 0x13e8]
xor ecx, ecx
xor ecx, dword [ebp - 0x13e4]
mov dword [ebp - 0x1410], edx
mov edx, dword [ebp - 0x13b4]
mov dword [ebp - 0x140c], ecx
mov ecx, dword [ebp - 0x1420]
mov dword [ebp - 0x13e8], edx
xor edx, edx
mov dword [ebp - 0x13e4], edx
mov edx, ecx
shrd ecx, eax, 1
shr eax, 1
mov dword [ebp - 0x13f0], ecx
mov ecx, dword [ebp - 0x13e8]
mov dword [ebp - 0x13ec], eax
and ecx, 1
xor eax, eax
add esp, 0x24
and edx, 1
or ecx, eax
je 0x4f26ad
mov eax, dword [ebp - 0x13f0]
or dword [ebp - 0x13ec], 0x80000000
mov dword [ebp - 0x13f0], eax
mov eax, dword [ebp - 0x13e4]
mov ecx, dword [ebp - 0x13e8]
shrd ecx, eax, 1
shr eax, 1
mov dword [ebp - 0x1404], eax
mov eax, edx
cdq
or ecx, eax
mov eax, dword [ebp - 0x1404]
mov dword [ebp - 0x13e8], ecx
or eax, edx
mov dword [ebp - 0x13e4], eax
mov eax, dword [ebp - 0x1410]
mov ecx, ebx
shr ecx, 0x1c
and ecx, 0xf
and eax, 1
shl eax, 4
or ecx, eax
mov dword [edi - 4], ecx
mov ecx, ebx
shr ecx, 0x17
push 0x1f
pop eax
and ecx, eax
mov dword [edi], ecx
mov ecx, ebx
shr ecx, 0x12
and ecx, eax
mov dword [edi + 4], ecx
mov ecx, ebx
shr ecx, 0xd
and ecx, eax
mov dword [edi + 8], ecx
mov ecx, ebx
shr ecx, 8
and ecx, eax
mov dword [edi + 0xc], ecx
mov eax, 0xff
mov ecx, ebx
and ecx, eax
mov dword [edi + 0xf9c], ecx
mov ecx, dword [ebp - 0x1418]
mov edx, ebx
shrd ecx, edx, 0x18
and ecx, eax
shr edx, 0x18
mov dword [edi + 0xfa0], ecx
mov ecx, dword [ebp - 0x1418]
mov edx, ebx
shrd ecx, edx, 0x10
and ecx, eax
mov dword [edi + 0xfa4], ecx
mov ecx, dword [ebp - 0x1418]
shr edx, 0x10
mov edx, ecx
shrd edx, ebx, 8
and edx, eax
and ecx, eax
mov dword [edi + 0xfa8], edx
mov dword [edi + 0xfac], ecx
shr ebx, 8
add edi, 0x14
dec dword [ebp - 0x13c4]
jne 0x4f25b8
mov ebx, dword [ebp - 0x13c8]
jmp 0x4f283d
push 7
pop edi
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
dec edi
jne 0x4f279a
cmp dword [ebp - 0x13c0], edi
jle 0x4f283d
mov eax, dword [ebp - 0x13c0]
lea edi, [esi + 0x146c]
mov dword [ebp - 0x13c4], eax
lea eax, [edi + 4]
push eax
push edi
lea eax, [edi - 4]
push eax
lea eax, [edi - 8]
push eax
lea eax, [edi - 0xc]
push eax
lea eax, [edi - 0xf9c]
push eax
lea eax, [edi - 0xfa0]
push eax
lea eax, [edi - 0xfa4]
push eax
lea eax, [edi - 0xfa8]
push eax
lea eax, [edi - 0xfac]
push eax
push str._d__d__d__d__d__d__d__d__d__d
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fscanf]
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0x3c
add edi, 0x14
dec dword [ebp - 0x13c4]
jne 0x4f27d2
push dword [ebp - 0x13cc]
lea eax, [ebp - 0x13a8]
push 0x1388
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x4f1f7f
jmp 0x4f2cb4
push dword [esi + 8]
push dword [ebp - 0x13d4]
push str._Error:_Please_make_sure_the_P_SIZE___Matrix_sft_d___config_P_SIZE_d__n
call sub.MSVCR100.dll_printf
add esp, 0xc
jmp 0x4f3088
push dword [ebp - 0x13f4]
push 0x55f260
call sub.MSVCR100.dll_printf
pop ecx
pop ecx
push 2
pop eax
jmp 0x4f30ae
push dword [ebp - 0x13f4]
push str.Error:_Can_not_identify_code_rate___s__n
jmp 0x4f288b
cmp dword [ebp - 0x13c4], 0
jne 0x4f2cb4
and dword [ebp - 0x13c4], 0
and dword [ebp - 0x13d0], 0
push 8
pop eax
push 0x48
pop ecx
mov dword [ebp - 0x13c0], ecx
mov dword [esi], ecx
mov ecx, dword [ebp - 0x13e0]
mov edx, ecx
imul ecx, ecx, 0x48
shl edx, 3
mov ebx, 0x9000
push ebx
mov dword [ebp - 0x13c8], eax
mov dword [esi + 4], eax
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x60], eax
call sub.MSVCR100.dll_malloc
push ebx
mov edi, eax
push 0
push edi
mov dword [esi + 0x8c], edi
call sub.MSVCR100.dll_memset
and dword [ebp - 0x13bc], 0
xor edx, edx
add esp, 0x10
mov dword [ebp - 0x13b8], 0x55e6c8
lea eax, [edi + 4]
inc edx
lea ecx, [ebp - 0xc]
xor edi, edi
mov dword [ebp - 0x13d4], ecx
mov ecx, dword [ebp - 0x13b8]
mov cl, byte [ecx + edi]
cmp cl, 0x39
movzx ecx, cl
jbe 0x4f294a
and ecx, 0xffffffdf
sub ecx, 0x37
jmp 0x4f294d
sub ecx, 0x30
mov bl, cl
mov ecx, dword [ebp - 0x13d4]
shl bl, 4
mov byte [ecx], bl
mov ecx, dword [ebp - 0x13b8]
mov cl, byte [ecx + edi + 1]
cmp cl, 0x39
movzx ecx, cl
jbe 0x4f2974
and ecx, 0xffffffdf
sub ecx, 0x37
jmp 0x4f2977
sub ecx, 0x30
or cl, bl
mov ebx, dword [ebp - 0x13d4]
dec dword [ebp - 0x13d4]
add edi, 2
mov byte [ebx], cl
cmp edi, 0xa
jl 0x4f2931
mov edi, dword [ebp - 0xc]
mov ecx, edi
shr ecx, 5
and cx, dx
mov word [ebp - 0x13da], cx
mov word [eax - 4], cx
mov ecx, edi
shr ecx, 4
mov ebx, ecx
and ebx, edx
mov word [eax - 2], bx
add dword [ebp - 0x13b8], 0xa
and dword [ebp - 0x1404], 0
mov ebx, edi
shr ebx, 3
and bx, dx
mov word [eax], bx
mov ebx, edi
shr ebx, 1
and bx, dx
mov edx, dword [ebp - 0x10]
mov word [eax + 2], bx
mov ebx, edi
shrd edx, ebx, 0x1c
and dx, 0x1f
mov word [eax + 4], dx
mov dx, word [ebp - 0x13c4]
mov word [eax + 6], dx
xor edx, edx
inc edx
shr ebx, 0x1c
and ecx, edx
push 0
mov dword [ebp - 0x1408], ecx
pop ecx
je 0x4f2a0f
test ecx, ecx
jne 0x4f2a0f
inc dword [ebp - 0x13c4]
mov ecx, dword [ebp - 0x10]
mov ebx, edi
shrd ecx, ebx, 0x10
and cx, 0x7f
mov word [eax + 8], cx
movzx ecx, byte [ebp - 0xf]
mov word [eax + 0xa], cx
mov ecx, edi
shr ecx, 2
and cx, dx
mov word [eax + 0xc], cx
xor ecx, ecx
mov word [eax + 0xe], cx
mov ecx, dword [ebp - 0x10]
shrd ecx, edi, 0x17
and cx, 0x1f
mov word [eax + 0x10], cx
xor ecx, ecx
mov word [eax + 0x12], cx
movzx ecx, byte [ebp - 0x10]
shr ebx, 0x10
shr edi, 0x17
mov word [eax + 0x14], cx
cmp word [ebp - 0x13da], dx
jne 0x4f2a6c
inc dword [ebp - 0x13d0]
inc dword [ebp - 0x13bc]
add eax, 0x20
cmp dword [ebp - 0x13d0], 5
jne 0x4f2926
mov eax, dword [ebp - 0x13bc]
and dword [ebp - 0x13e4], 0
mov ebx, dword [sym.imp.MSVCR100.dll_sscanf]
mov dword [esi + 0x90], eax
mov eax, 0xd7459ad7
mov dword [ebp - 0x13f0], eax
mov dword [ebp - 0x13ec], eax
mov dword [ebp - 0x13e8], edx
mov dword [ebp - 0x13b8], str.1c6d56df4509686531d1f241d21238fa0c0da61d68c79c288c805f2413456b47fd9d12d86ffe9fa240fd51b753c7fb82b7b4de0cab91bdf56ae2510077487bfebdd91b1f12ab0c5f5013d79d6094549a9eed5057cd14aa2da40062f92640b449982a598ccdeb14b285b174aaae18c0a498fb9ab266ee940435caac42486b1e602122827b9af4e47511181e63dee13bec008850450273af31e7155bcf7c861be5295198caadfc67b882fa0dd69a0fb4379ebd914f202677dd7d31a31a704eb3e82d35a8b1c21282fc26cc484a0e199974244b716820515c7d8070f09635129a289d40ac84c6e09441f3dfa2a0e83c05b300cea98c6e23313c94de6e6ce89e611bfda9a17ab6451600cee1bb2cea0bd57a0656405a72c6733fc0202afad5db91646710185db70ca506c39191525bd4ebf02fc31c839f596aed620da0f50c2fed143cc45b17a0e81ffb5ae99c20ac17f5ab14f673ab114930de017d03cc318b517391b43025c91d4b86ecab89ebfbf1ead4826020eebaf51f5fe941a96e0a7900e867bc70f0441558074a3291f05ab0a3b13add0198d9b9495119f7678bed96387bc0ceb7e420f5bd8ff7167d347116a8b5bde0b37915ac2be9030a0482c7fb26815ae420248ec9e1b6b00d25103539cfb971593ce080a57830487de88e040c26a67c024d8be001f1cd2aca70a556001f4519b564489cc0016efdfcda5bb2471012f88d630736b591b283316a409345c91d8d96ed9a4ce59d71ed7c0134a215c9411e7b2f784dbcf3d4a0f2d5a398095e933e0786654f74f1d47bc03d23dc143b685b5600f053b34906b314d106122ad724ad89100829dc05ea7050ff00405a373f322e7b0500410a0f8700412609b00041af176c0052111ca600519a14b000521b35c400512b05a1045132015500523324ac0051b74df70051ba0e7c00523f58720051c23bb20052454d9800618d113300618f19b70062183cd10062a031620062247c2e0062ac2a970061b17f0c0062387f1a0062bb31790061c15ab90062c635530062c710ac0072844b8700718964ce0072100069007296056d00732961d800722e278900733072bf00733538ba00733c285e00733e6c871072436fe600620e09b5006292496900619d1b8b0062221a98006225265700622a02860062c43edf08418c026c0052236cd8005227542100720023d300720622f5007287118e0072880ad100730b0a9b00719405a500721763a500721c059600719f27b900732106a200732d7d3400723464e10072b60b4d0471c01ec500020a70b900030f88bc00029184ee0003966cc2000318573200029ba7ce000324db370002263ffb0002ab7ce500032c86fa0003ae7d0000022f5bcc0002b2109c0002b39eae0003b582da100338e42c0072950ac100721e201000723919620052050fa508521921ab0003896deb00030d179e00029023cc00029a32070003a9bf3b000331994c0002b783210002ba33db0002bf70e5000341640d0002424b0e0003c39cf800034761fc00138697ff0013885ff400100a870f00138b5a0404120c668700130e7dc600139470aa00139c499600131d20ef00139f3ffd00132543d4001026b0090012a7ce3f00132a62ad00102ba10500103255010013b64c951013c08ad9007301287300730265de00728303a60072bd01aa086293186700033b71f60003bc5db20003be84fb0002c56c1100034635cb001380871c00100fb71900131258ca00139767e50012a227de0012a38e1900102f6c170013b47d2f0013448d1c0022857fb3002009ce6400208c6c0200200d3311002094a5050023957cc4002299521d00201ab01400209d8b1b00239e9d1e00209fb9270020310c7f002037f74d0023b92ac900203a7c0e0020c0c51e002041b95a1422c2b2230003844ff100032059d90803b0b52308732835ab0013871609001011a61c001018d13c00101bc4350010242e7c00102e8927001033ac240010381a7f002086f52200208ab97000208eb50900239069fa00209c96050020a557260020a6fb3f0020a721540020aa860200203f7258002043e66f003080d32300338357b9003105a50f00310c876600331357ab003097a563003119ab2100311e1020043322980a0030a3d86c0030afcc5b0030b4e16400313962190033bd58f00030420e3b103045984d0010166d050013a14dfd00102c972a0013adbb46002088d10a0020abe57c0020b29c100020b64d0b002047ac100033813ab900338270f50030926949003115c10a00311a0732003137218300313adb3300303b79310030c4df3e0030465335004183a603004004874b004185b37f0040878e11004010cc00004091ee8400419367180041991d5200409bcea700402062310040a2de1a0041a3198e0041273fce0443a89d050040b3ae9e0041bdaa0100413fe570004142234b1041c5116c00310d9e1700308fbc8800311def200031314c9900303c5e2800303e876c0031410d64081035ba3800208b9b0a082029d86100410ec67d00409832570040a437db004125d44300412aad62044030bf720040b82ce40051817328005182de65005192ca58005213ab57005220d9590050a1a2060051a20a27005228ab350050acfa860050ad347d0051bbf6710051c41c8d0051c6cb35105147fc61003109eb6d003114aa7000311ffd3f083140d98a0041801c87004106ff97004197e56700411c964900419e1e9d0040ae007d0041b42f7d0041b9c92a004143f89c005203b957005204f14f0052070916005108f45f005110fa23005195c47c005096c26c005136954c00523df058006281b93a006282f57000610b045a0062a1fd4d0062a8059d0061293bbf2062ad46bb20
lea edi, [esi + 0x4c4]
mov dword [ebp - 0x13fc], 0x48
lea eax, [ebp - 0x13b4]
push eax
push 0x55f3a0
push dword [ebp - 0x13b8]
call ebx
inc dword [ebp - 0x13b8]
lea eax, [ebp - 0x13b0]
push eax
push 0x55f3a4
push dword [ebp - 0x13b8]
call ebx
add dword [ebp - 0x13b8], 8
lea eax, [ebp - 0x13ac]
push eax
push 0x55f3a8
push dword [ebp - 0x13b8]
call ebx
mov eax, dword [ebp - 0x13b0]
xor edx, edx
or eax, edx
xor ecx, ecx
or ecx, dword [ebp - 0x13ac]
add dword [ebp - 0x13b8], 8
mov edx, ecx
xor edx, dword [ebp - 0x13f0]
mov dword [ebp - 0x1408], ecx
mov ecx, dword [ebp - 0x13b4]
mov dword [ebp - 0x20], edx
mov edx, eax
xor edx, dword [ebp - 0x13ec]
mov dword [ebp - 0x1410], ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1410]
xor edx, dword [ebp - 0x13e8]
xor ecx, ecx
xor ecx, dword [ebp - 0x13e4]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x13b4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x1408]
mov dword [ebp - 0x13e8], edx
xor edx, edx
mov dword [ebp - 0x13e4], edx
mov edx, ecx
shrd ecx, eax, 1
mov dword [ebp - 0x1414], eax
shr eax, 1
mov dword [ebp - 0x13f0], ecx
mov ecx, dword [ebp - 0x13e8]
mov dword [ebp - 0x13ec], eax
and ecx, 1
xor eax, eax
add esp, 0x24
and edx, 1
or ecx, eax
je 0x4f2bdb
mov eax, dword [ebp - 0x13f0]
or dword [ebp - 0x13ec], 0x80000000
mov dword [ebp - 0x13f0], eax
mov eax, dword [ebp - 0x13e4]
mov ecx, dword [ebp - 0x13e8]
shrd ecx, eax, 1
shr eax, 1
mov dword [ebp - 0x141c], eax
mov eax, edx
cdq
or ecx, eax
mov eax, dword [ebp - 0x141c]
or eax, edx
mov dword [ebp - 0x13e8], ecx
mov ecx, dword [ebp - 0x14]
mov edx, ecx
shr edx, 0x1c
and edx, 0xf
mov dword [ebp - 0x13e4], eax
mov eax, dword [ebp - 0x10]
and eax, 1
shl eax, 4
or edx, eax
mov dword [edi - 4], edx
mov edx, ecx
shr edx, 0x17
push 0x1f
pop eax
and edx, eax
mov dword [edi], edx
mov edx, ecx
shr edx, 0x12
and edx, eax
mov dword [edi + 4], edx
mov edx, ecx
shr edx, 0xd
and edx, eax
mov dword [edi + 8], edx
mov edx, ecx
shr edx, 8
and edx, eax
mov dword [edi + 0xc], edx
mov edx, ecx
mov eax, 0xff
and edx, eax
mov dword [edi + 0xf9c], edx
mov edx, dword [ebp - 0x18]
shrd edx, ecx, 0x18
and edx, eax
shr ecx, 0x18
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0xfa0], edx
mov edx, dword [ebp - 0x14]
shrd ecx, edx, 0x10
and ecx, eax
mov dword [edi + 0xfa4], ecx
mov ecx, dword [ebp - 0x14]
shr edx, 0x10
mov edx, dword [ebp - 0x18]
shrd edx, ecx, 8
shr ecx, 8
mov ecx, dword [ebp - 0x18]
and edx, eax
and ecx, eax
mov dword [edi + 0xfa8], edx
mov dword [edi + 0xfac], ecx
add edi, 0x14
dec dword [ebp - 0x13fc]
jne 0x4f2acc
xor eax, eax
cmp dword [esi + 4], eax
je 0x4f3076
cmp dword [esi], eax
je 0x4f3076
cmp dword [ebp - 0x13d8], eax
jne 0x4f2ce5
cmp dword [ebp + 0xc], 1
jne 0x4f2ce5
push dword [ebp - 0x13f4]
push str.Error:_Can_not_find_keyword__H_MATRIX_FOR_LDPC_DECODER__in__s_file__n
jmp 0x4f3081
cmp dword [ebp + 0xc], eax
jne 0x4f2fd9
mov edi, dword [ebp - 0x13c0]
mov ebx, dword [ebp - 0x13c8]
mov eax, dword [esi + 0x8c]
and dword [ebp - 0x13c4], 0
add edi, 2
imul edi, ebx
add edi, edi
push edi
mov dword [ebp - 0xc], eax
call sub.MSVCR100.dll_malloc
shl ebx, 2
pop ecx
mov dword [esi + 0x84], eax
xor ecx, ecx
add eax, ebx
cmp dword [ebp - 0x13c8], ecx
jle 0x4f2d49
mov edx, dword [esi + 0x84]
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0x13c0]
inc ecx
lea eax, [eax + edx*2]
cmp ecx, dword [ebp - 0x13c8]
jl 0x4f2d2e
push edi
call sub.MSVCR100.dll_malloc
push edi
push 0
push eax
mov dword [esi + 0x88], eax
call sub.MSVCR100.dll_memset
mov eax, dword [esi + 0x88]
xor ecx, ecx
add esp, 0x10
add eax, ebx
cmp dword [ebp - 0x13c8], ecx
jle 0x4f2d8f
mov edx, dword [ebp - 0x13c0]
add edx, edx
mov edi, dword [esi + 0x88]
mov dword [edi + ecx*4], eax
inc ecx
add eax, edx
cmp ecx, dword [ebp - 0x13c8]
jl 0x4f2d7b
mov eax, dword [esi + 0x14]
lea eax, [eax*4 + 4]
push eax
call sub.MSVCR100.dll_malloc
xor ebx, ebx
pop ecx
xor ecx, ecx
mov dword [esi + 0x78], eax
mov dword [eax], ebx
cmp dword [ebp - 0x13c8], ebx
jle 0x4f2ddd
xor eax, eax
cmp dword [ebp - 0x13c0], ebx
jle 0x4f2dd4
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
or edi, 0xffffffff
mov word [edx + eax*2], di
inc eax
cmp eax, dword [ebp - 0x13c0]
jl 0x4f2dbb
inc ecx
cmp ecx, dword [ebp - 0x13c8]
jl 0x4f2db1
mov dword [ebp - 0x13bc], ebx
cmp dword [esi + 0x90], ebx
jle 0x4f2e29
mov eax, dword [ebp - 0xc]
xor ecx, ecx
add eax, 0xc
mov edx, dword [esi + 0x84]
movzx edi, word [eax]
mov bx, word [eax + 2]
mov edx, dword [edx + ecx]
mov word [edx + edi*2], bx
xor ebx, ebx
cmp word [eax - 0xa], bx
je 0x4f2e12
add ecx, 4
inc dword [ebp - 0x13bc]
mov edx, dword [ebp - 0x13bc]
add eax, 0x20
cmp edx, dword [esi + 0x90]
jl 0x4f2df3
mov dword [ebp - 0x13bc], ebx
cmp dword [ebp - 0x13c8], ebx
jle 0x4f2ee0
mov edi, dword [ebp - 0x13e0]
mov dword [ebp - 0x13d8], ebx
xor edx, edx
xor eax, eax
cmp dword [ebp - 0x13c0], ebx
jle 0x4f2e8b
mov ecx, dword [ebp - 0x13bc]
mov ebx, dword [esi + 0x84]
mov ebx, dword [ebx + ecx*4]
cmp word [ebx + eax*2], 0xffff
mov ebx, dword [esi + 0x88]
mov ecx, dword [ebx + ecx*4]
je 0x4f2e79
mov word [ecx + eax*2], dx
inc edx
jmp 0x4f2e80
or ebx, 0xffffffff
mov word [ecx + eax*2], bx
inc eax
cmp eax, dword [ebp - 0x13c0]
jl 0x4f2e53
xor ebx, ebx
cmp edx, dword [ebp - 0x13c4]
jle 0x4f2e99
mov dword [ebp - 0x13c4], edx
cmp edi, ebx
jle 0x4f2eb7
mov ecx, dword [ebp - 0x13d8]
mov eax, dword [esi + 0x78]
mov ebx, dword [eax + ecx]
add ebx, edx
mov dword [eax + ecx + 4], ebx
add ecx, 4
dec edi
jne 0x4f2ea3
xor ebx, ebx
mov edi, dword [ebp - 0x13e0]
inc dword [ebp - 0x13bc]
mov eax, edi
shl eax, 2
add dword [ebp - 0x13d8], eax
mov eax, dword [ebp - 0x13bc]
cmp eax, dword [ebp - 0x13c8]
jl 0x4f2e47
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x14]
mov eax, dword [ecx + eax*4]
shl eax, 2
push eax
call sub.MSVCR100.dll_malloc
pop ecx
mov dword [esi + 0x7c], eax
mov dword [ebp - 0x13b8], eax
mov dword [ebp - 0x13bc], ebx
cmp dword [ebp - 0x13c8], ebx
jle 0x4f2fc3
mov edi, dword [ebp - 0x13e0]
xor edx, edx
cmp edi, ebx
jle 0x4f2fab
mov dword [ebp - 0x13d4], ebx
cmp dword [ebp - 0x13c0], ebx
jle 0x4f2fa2
mov eax, edi
mov dword [ebp - 0x13d8], ebx
neg eax
mov ebx, dword [ebp - 0x13bc]
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + ebx*4]
mov ebx, dword [ebp - 0x13d4]
movzx ecx, word [ecx + ebx*2]
cmp cx, 0xffff
je 0x4f2f7e
movsx ecx, cx
lea ebx, [edx + ecx]
dec edi
cmp ebx, edi
jle 0x4f2f65
lea edi, [edx + eax]
jmp 0x4f2f6d
mov edi, dword [ebp - 0x13d8]
add edi, edx
add edi, ecx
mov ecx, dword [ebp - 0x13b8]
add dword [ebp - 0x13b8], 4
mov dword [ecx], edi
inc dword [ebp - 0x13d4]
mov edi, dword [ebp - 0x13e0]
mov ecx, dword [ebp - 0x13d4]
add dword [ebp - 0x13d8], edi
add eax, edi
cmp ecx, dword [ebp - 0x13c0]
jl 0x4f2f36
xor ebx, ebx
inc edx
cmp edx, edi
jl 0x4f2f1e
inc dword [ebp - 0x13bc]
mov eax, dword [ebp - 0x13bc]
cmp eax, dword [ebp - 0x13c8]
jl 0x4f2f14
mov eax, dword [ebp - 0x13c4]
shl eax, 2
push eax
call sub.MSVCR100.dll_malloc
pop ecx
mov dword [esi + 0xb0], eax
mov edi, dword [esi + 0x10]
push edi
call sub.MSVCR100.dll_malloc
push edi
xor ebx, ebx
push ebx
push eax
mov dword [esi + 0xb4], eax
call sub.MSVCR100.dll_memset
mov edi, dword [esi + 0x10]
shl edi, 2
push edi
call sub.MSVCR100.dll_malloc
push edi
push ebx
push eax
mov dword [esi + 0xac], eax
call sub.MSVCR100.dll_memset
mov edi, dword [esi + 0x10]
shl edi, 2
push edi
call sub.MSVCR100.dll_malloc
push edi
push ebx
push eax
mov dword [esi + 0xa4], eax
call sub.MSVCR100.dll_memset
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x78]
lea edi, [ecx + eax*4]
mov eax, dword [edi]
shl eax, 2
push eax
call sub.MSVCR100.dll_malloc
mov dword [esi + 0xa8], eax
mov ecx, dword [edi]
shl ecx, 2
push ecx
push ebx
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [esi + 0x28]
xor eax, eax
inc eax
add esp, 0x40
dec ecx
shl eax, cl
mov ecx, dword [esi + 0x2c]
dec eax
mov dword [esi + 0x30], eax
xor eax, eax
dec ecx
inc eax
shl eax, cl
dec eax
mov dword [esi + 0x34], eax
call fcn.004f16c3
call fcn.004f0b67
jmp 0x4f3092
push dword [ebp - 0x13f4]
push str.Error:_Can_not_find_code_rate_id___s__n
call sub.MSVCR100.dll_printf
pop ecx
pop ecx
mov dword [ebp - 0x13f8], 2
cmp dword [ebp - 0x13cc], 0
je 0x4f30a8
push dword [ebp - 0x13cc]
call dword [sym.imp.MSVCR100.dll_fclose]
pop ecx
mov eax, dword [ebp - 0x13f8]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e8d32
leave
ret