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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x16c
mov edi, dword [esp + 0x188]
test edi, edi
jne 0x47cb44
mov eax, dword [esp + 0x194]
mov dword [eax], 0
xor eax, eax
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x180]
mov eax, dword [edx + 0x7c]
mov dword [esp], eax
call sub.USER32.dll_GetDC
push edx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x180]
mov eax, dword [edx + 0x78]
mov dword [esp + 0x6c], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov dword [esp + 0x5c], eax
add edi, dword [esp + 0x184]
mov dword [esp + 0x4c], edi
mov ebp, dword [esp + 0x184]
cmp dword [esp + 0x184], edi
jae 0x47d0a4
mov ebx, ebp
mov dword [esp + 0x48], 0
lea edx, [esp + 0x68]
mov dword [esp + 0x50], edx
lea eax, [esp + 0x8c]
mov dword [esp + 0x40], eax
lea edx, [esp + 0x74]
mov dword [esp + 0x58], edx
jmp 0x47cc92
mov edi, dword [eax + 8]
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, ebx
sub eax, ebp
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov eax, dword [edi + 0xc]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
mov dword [esp + 0x3c], edx
call dword [eax + 0x53c]
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov ecx, dword [edi + 0x14]
mov eax, dword [esp + 0x90]
sar eax, cl
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [edi + 0x1c]
sub esp, 0x10
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x1e8]
mov edi, dword [esp + 0x48]
add edi, dword [esp + 0x74]
mov eax, dword [esp + 0x18c]
test eax, eax
mov edx, dword [esp + 0x3c]
js 0x47cc6a
cmp dword [esp + 0x18c], edi
jl 0x47cd74
mov dword [esp + 0x6c], edx
mov eax, dword [edx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov ebp, ebx
mov dword [esp + 0x48], edi
mov ebx, esi
cmp dword [esp + 0x4c], esi
jbe 0x47ccda
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [0x68bb7c]
call dword [eax + 0x548]
lea esi, [ebx + eax]
movzx edx, word [esp + 0x68]
lea ecx, [esp + 0x6c]
mov eax, dword [esp + 0x180]
call fcn.0047be74
mov edx, eax
mov eax, dword [esp + 0x6c]
cmp edx, eax
jne 0x47cbcc
mov dword [esp + 0x54], ebp
mov ebx, esi
cmp dword [esp + 0x4c], esi
ja 0x47cc92
sub esi, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x53c]
mov dword [esp + 0x74], 0
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 0x90]
sar eax, cl
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [ebx + 0x1c]
sub esp, 0x10
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0x1e8]
mov esi, dword [esp + 0x48]
add esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x18c]
test ecx, ecx
js 0x47ceb4
cmp dword [esp + 0x18c], esi
jge 0x47ceb4
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x1f0]
cmp dword [esp + 0x4c], ebp
jbe 0x47d0c6
mov edi, ebp
mov dword [esp + 0x54], 0
lea eax, [esp + 0x68]
mov dword [esp + 0x50], eax
lea ebp, [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
mov dword [esp], edi
mov eax, dword [0x68bb7c]
call dword [eax + 0x548]
mov dword [esp + 0x28], 0
lea edx, [esp + 0x70]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
lea esi, [edi + eax]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [0x68bb7c]
call dword [eax + 0x538]
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x1dc]
mov dword [esp + 0x74], 0
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 0x90]
sar eax, cl
mov dword [esp + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [ebx + 0x1c]
sub esp, 0x10
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x48]
add edx, eax
cmp dword [esp + 0x18c], edx
jl 0x47cf08
mov edi, esi
mov dword [esp + 0x54], eax
cmp dword [esp + 0x4c], esi
ja 0x47cdad
mov esi, edx
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0x1e8]
jmp 0x47cf68
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x180]
mov eax, dword [edx + 0x7c]
mov dword [esp], eax
call sub.USER32.dll_ReleaseDC
sub esp, 8
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x184]
mov edx, dword [esp + 0x194]
mov dword [edx], esi
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
mov ebx, esi
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0x1e8]
cmp dword [esp + 0x4c], edi
jbe 0x47cf60
test byte [esp + 0x190], 4
jne 0x47d06d
cmp dword [esp + 0x184], edi
jne 0x47cf60
test byte [esp + 0x190], 2
je 0x47cf4f
mov esi, dword [esp + 0x48]
test esi, esi
je 0x47d07e
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x48]
mov edi, dword [esp + 0x184]
jmp 0x47cf68
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x48]
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x180]
mov eax, dword [edx + 0x7c]
mov dword [esp], eax
call sub.USER32.dll_ReleaseDC
sub esp, 8
test byte [esp + 0x190], 1
jne 0x47cfb4
mov eax, edi
sub eax, dword [esp + 0x184]
jmp 0x47cef3
cmp edi, dword [esp + 0x4c]
jae 0x47cfa6
mov word [esp + 0x68], 0x20
cmp edi, dword [esp + 0x184]
jbe 0x47d08d
mov ebp, dword [esp + 0x184]
mov dword [esp + 0x40], 0
lea ebx, [esp + 0x6a]
jmp 0x47cfef
mov word [esp + 0x68], dx
mov ebp, eax
cmp edi, eax
jbe 0x47d01c
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov eax, dword [0x68bb7c]
call dword [eax + 0x548]
add eax, ebp
mov dx, word [esp + 0x6a]
cmp word [esp + 0x68], 0x20
je 0x47cfe4
cmp dx, 0x20
jne 0x47cfe4
mov dword [esp + 0x40], ebp
jmp 0x47cfe4
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x47d08d
mov eax, dword [esp + 0x194]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov ebp, dword [esp + 0x40]
sub ebp, dword [esp + 0x184]
mov dword [esp + 8], ebp
mov edx, dword [esp + 0x184]
mov dword [esp + 4], edx
mov eax, dword [esp + 0x180]
mov dword [esp], eax
call fcn.0047cb14
jmp 0x47cb38
mov eax, dword [esp + 0x18c]
cmp dword [esp + 0x48], eax
je 0x47cf30
mov esi, dword [esp + 0x48]
add esi, dword [esp + 0x74]
mov edi, ebx
jmp 0x47cf68
test byte [esp + 0x190], 2
jne 0x47cfa6
xor eax, eax
xor esi, esi
jmp 0x47cef3
xor esi, esi
mov dword [esp + 0x48], 0
lea eax, [esp + 0x8c]
mov dword [esp + 0x40], eax
lea edx, [esp + 0x74]
mov dword [esp + 0x58], edx
jmp 0x47ccde
mov esi, dword [esp + 0x48]
mov edi, ebp
jmp 0x47ce9a