Function at 0x4705e0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0x10]
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], esi
push edi
mov edi, dword [ebx + 0x50]
mov dword [ebp - 8], edi
cmp eax, 6
jb 0x470adf
mov dword [ebp - 0x10], eax
jmp 0x470610
mov esi, dword [ebp + 0xc]
add esi, ecx
push 1
push dword [ebx + 0x78]
movzx eax, word [esi]
mov edi, dword [esi + 2]
mov dword [ebp + 8], eax
call fcn.0042f7e0
add esp, 8
test eax, eax
je 0x47065b
push dword [ebp + 8]
call fcn.00470560
push eax
push 0x5b20e0
push str.progressive_process_tiles
push str.C:BuildFreeRDP_stable_1.1BuildFreeRDPlibfreerdpcodecprogressive.c
push 0x501
push 1
push 0
push dword [ebx + 0x78]
call fcn.0042fce0
add esp, 0x24
cmp dword [ebp - 0x10], edi
jb 0x470be1
mov eax, dword [ebp + 8]
movzx eax, ax
sub eax, 0xccc5
je 0x470966
dec eax
je 0x47081a
dec eax
jne 0x470b47
lea eax, [edi - 6]
cmp eax, 0x14
jb 0x470b3b
mov ecx, dword [ebp + 0x14]
mov ax, word [ecx + 0xc]
imul ax, word [esi + 0xb]
add ax, word [esi + 9]
movzx eax, ax
cmp eax, dword [ecx + 0x14]
jae 0x470bcb
imul edx, eax, 0xd4
mov eax, dword [ebp - 4]
add edx, dword [ecx + 0x18]
mov ecx, dword [ebp - 8]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp + 8]
mov word [edx], ax
mov dword [edx + 4], edi
mov byte [edx + 0x10], 0
movzx eax, byte [esi + 6]
mov byte [edx + 8], al
movzx eax, byte [esi + 7]
mov byte [edx + 9], al
movzx eax, byte [esi + 8]
mov byte [edx + 0xa], al
movzx eax, word [esi + 9]
mov word [edx + 0xc], ax
movzx eax, word [esi + 0xb]
mov word [edx + 0xe], ax
movzx eax, byte [esi + 0xd]
mov byte [edx + 0x11], al
movzx eax, word [esi + 0xe]
mov word [edx + 0x2c], ax
movzx eax, word [esi + 0x10]
movzx ecx, word [edx + 0x2c]
mov word [edx + 0x2e], ax
movzx eax, word [esi + 0x12]
mov word [edx + 0x30], ax
movzx eax, word [esi + 0x14]
mov word [edx + 0x32], ax
movzx eax, word [esi + 0x16]
mov word [edx + 0x34], ax
movzx eax, word [esi + 0x18]
mov word [edx + 0x36], ax
lea eax, [edi - 0x1a]
cmp eax, ecx
jb 0x470b2f
lea eax, [esi + 0x1a]
mov dword [edx + 0x38], eax
lea eax, [ecx + 0x1a]
movzx ecx, word [edx + 0x2e]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b23
lea ecx, [esi + eax]
mov dword [edx + 0x3c], ecx
movzx ecx, word [edx + 0x2e]
add eax, ecx
movzx ecx, word [edx + 0x30]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b17
lea ecx, [esi + eax]
mov dword [edx + 0x40], ecx
movzx ecx, word [edx + 0x30]
add eax, ecx
movzx ecx, word [edx + 0x32]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b0b
lea ecx, [esi + eax]
mov dword [edx + 0x44], ecx
movzx ecx, word [edx + 0x32]
add eax, ecx
movzx ecx, word [edx + 0x34]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470aff
lea ecx, [esi + eax]
mov dword [edx + 0x48], ecx
movzx ecx, word [edx + 0x34]
add eax, ecx
movzx ecx, word [edx + 0x36]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470af3
lea ecx, [esi + eax]
mov dword [edx + 0x58], 0x40
mov dword [edx + 0x4c], ecx
movzx ecx, word [edx + 0x36]
add eax, ecx
mov dword [edx + 0x5c], 0x40
movzx ecx, word [edx + 0xc]
shl ecx, 6
mov dword [edx + 0x50], ecx
movzx ecx, word [edx + 0xe]
shl ecx, 6
mov dword [edx + 0x54], ecx
mov ecx, dword [ebx + 0x10]
mov dword [edx + 0x60], ecx
shr ecx, 0x18
and ecx, 0x3f
add ecx, 7
shr ecx, 3
shl ecx, 6
jmp 0x470aae
lea eax, [edi - 6]
cmp eax, 0x11
jb 0x470b83
mov ecx, dword [ebp + 0x14]
mov ax, word [ecx + 0xc]
imul ax, word [esi + 0xb]
add ax, word [esi + 9]
movzx eax, ax
cmp eax, dword [ecx + 0x14]
jae 0x470bcb
imul edx, eax, 0xd4
mov eax, dword [ebp - 4]
add edx, dword [ecx + 0x18]
mov ecx, dword [ebp - 8]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp + 8]
mov word [edx], ax
mov dword [edx + 4], edi
movzx eax, byte [esi + 6]
mov byte [edx + 8], al
movzx eax, byte [esi + 7]
mov byte [edx + 9], al
movzx eax, byte [esi + 8]
mov byte [edx + 0xa], al
movzx eax, word [esi + 9]
mov word [edx + 0xc], ax
movzx eax, word [esi + 0xb]
mov word [edx + 0xe], ax
movzx eax, byte [esi + 0xd]
and al, 1
mov byte [edx + 0x10], al
movzx eax, byte [esi + 0xe]
mov byte [edx + 0x11], al
movzx eax, word [esi + 0xf]
mov word [edx + 0x12], ax
movzx eax, word [esi + 0x11]
movzx ecx, word [edx + 0x12]
mov word [edx + 0x14], ax
movzx eax, word [esi + 0x13]
mov word [edx + 0x16], ax
movzx eax, word [esi + 0x15]
mov word [edx + 0x18], ax
lea eax, [edi - 0x17]
cmp eax, ecx
jb 0x470b77
lea eax, [esi + 0x17]
mov dword [edx + 0x1c], eax
lea eax, [ecx + 0x17]
movzx ecx, word [edx + 0x14]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b6b
lea ecx, [esi + eax]
mov dword [edx + 0x20], ecx
movzx ecx, word [edx + 0x14]
add eax, ecx
movzx ecx, word [edx + 0x16]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b5f
lea ecx, [esi + eax]
mov dword [edx + 0x24], ecx
movzx ecx, word [edx + 0x16]
add eax, ecx
movzx ecx, word [edx + 0x18]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b53
lea ecx, [esi + eax]
mov dword [edx + 0x58], 0x40
mov dword [edx + 0x28], ecx
movzx ecx, word [edx + 0x18]
add eax, ecx
mov dword [edx + 0x5c], 0x40
movzx ecx, word [edx + 0xc]
shl ecx, 6
mov dword [edx + 0x50], ecx
movzx ecx, word [edx + 0xe]
shl ecx, 6
mov dword [edx + 0x54], ecx
mov ecx, dword [ebx + 0x10]
mov dword [edx + 0x60], ecx
shr ecx, 0x18
and ecx, 0x3f
add ecx, 7
shr ecx, 3
shl ecx, 6
jmp 0x470aae
lea eax, [edi - 6]
cmp eax, 0x10
jb 0x470bd5
mov ecx, dword [ebp + 0x14]
mov ax, word [ecx + 0xc]
imul ax, word [esi + 0xb]
add ax, word [esi + 9]
movzx eax, ax
cmp eax, dword [ecx + 0x14]
jae 0x470bcb
imul edx, eax, 0xd4
mov eax, dword [ebp - 4]
add edx, dword [ecx + 0x18]
mov ecx, dword [ebp - 8]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp + 8]
mov word [edx], ax
mov dword [edx + 4], edi
mov byte [edx + 0x11], 0xff
movzx eax, byte [esi + 6]
mov byte [edx + 8], al
movzx eax, byte [esi + 7]
mov byte [edx + 9], al
movzx eax, byte [esi + 8]
mov byte [edx + 0xa], al
movzx eax, word [esi + 9]
mov word [edx + 0xc], ax
movzx eax, word [esi + 0xb]
mov word [edx + 0xe], ax
movzx eax, byte [esi + 0xd]
and al, 1
mov byte [edx + 0x10], al
movzx eax, word [esi + 0xe]
mov word [edx + 0x12], ax
movzx eax, word [esi + 0x10]
movzx ecx, word [edx + 0x12]
mov word [edx + 0x14], ax
movzx eax, word [esi + 0x12]
mov word [edx + 0x16], ax
movzx eax, word [esi + 0x14]
mov word [edx + 0x18], ax
lea eax, [edi - 0x16]
cmp eax, ecx
jb 0x470bbf
lea eax, [esi + 0x16]
mov dword [edx + 0x1c], eax
lea eax, [ecx + 0x16]
movzx ecx, word [edx + 0x14]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470bb3
lea ecx, [esi + eax]
mov dword [edx + 0x20], ecx
movzx ecx, word [edx + 0x14]
add eax, ecx
movzx ecx, word [edx + 0x16]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470ba7
lea ecx, [esi + eax]
mov dword [edx + 0x24], ecx
movzx ecx, word [edx + 0x16]
add eax, ecx
movzx ecx, word [edx + 0x18]
mov dword [ebp + 8], ecx
mov ecx, edi
sub ecx, eax
cmp ecx, dword [ebp + 8]
jb 0x470b9b
lea ecx, [esi + eax]
mov dword [edx + 0x58], 0x40
mov dword [edx + 0x28], ecx
movzx ecx, word [edx + 0x18]
add eax, ecx
mov dword [edx + 0x5c], 0x40
movzx ecx, word [edx + 0xc]
shl ecx, 6
mov dword [edx + 0x50], ecx
movzx ecx, word [edx + 0xe]
shl ecx, 6
mov dword [edx + 0x54], ecx
mov ecx, dword [ebx + 0x10]
mov dword [edx + 0x60], ecx
shr ecx, 0x18
and ecx, 0x3f
add ecx, 7
shr ecx, 3
shl ecx, 6
and byte [edx + 0x10], 1
mov dword [edx + 0x64], ecx
cmp eax, edi
jne 0x470b8f
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
add ecx, edi
mov eax, dword [ebp + 0x10]
inc esi
sub eax, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], eax
cmp eax, 6
jae 0x470610
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 8]
cmp ecx, eax
je 0x470bed
pop edi
pop esi
mov eax, 0xfffffbef
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf2
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf3
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf4
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf5
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf6
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf7
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf8
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf9
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbfa
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbfb
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbfc
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbfd
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbf0
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbfe
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffbff
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc00
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc01
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc02
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc15
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [ebx + 0x3c]
cmp esi, eax
je 0x470c2f
push 3
push dword [ebx + 0x78]
call fcn.0042f7e0
add esp, 8
test eax, eax
je 0x470c2f
movzx eax, word [ebx + 0x3c]
push eax
push esi
push str.numTiles_inconsistency:_actual:__I32u__expected:__hu_n
push str.progressive_process_tiles
push str.C:BuildFreeRDP_stable_1.1BuildFreeRDPlibfreerdpcodecprogressive.c
push 0x5d7
push 3
push 0
push dword [ebx + 0x78]
call fcn.0042fce0
add esp, 0x24
xor eax, eax
xor esi, esi
cmp ax, word [ebx + 0x3c]
jae 0x470c82
or edx, 0xffffffff
lea esp, [esp]
movzx eax, si
mov ecx, dword [edi + eax*4]
movzx eax, word [ecx]
cmp eax, 0xccc5
jl 0x470c73
cmp eax, 0xccc6
jle 0x470c67
cmp eax, 0xccc7
jne 0x470c73
push ecx
push ebx
call fcn.00470000
jmp 0x470c6e
push ecx
push ebx
call fcn.0046fc20
mov edx, eax
add esp, 8
test edx, edx
js 0x470bcb
inc esi
cmp si, word [ebx + 0x3c]
jb 0x470c40
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret