Function at 0x47c3f8
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 0x47c428
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 0x47c988
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 0x47c576
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 [0x67eb7c]
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 [0x67eb7c]
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 0x47c54e
cmp dword [esp + 0x18c], edi
jl 0x47c658
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 0x47c5be
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [0x67eb7c]
call dword [eax + 0x548]
lea esi, [ebx + eax]
movzx edx, word [esp + 0x68]
lea ecx, [esp + 0x6c]
mov eax, dword [esp + 0x180]
call fcn.0047b758
mov edx, eax
mov eax, dword [esp + 0x6c]
cmp edx, eax
jne 0x47c4b0
mov dword [esp + 0x54], ebp
mov ebx, esi
cmp dword [esp + 0x4c], esi
ja 0x47c576
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 [0x67eb7c]
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 [0x67eb7c]
call dword [eax + 0x1e8]
mov esi, dword [esp + 0x48]
add esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x18c]
test ecx, ecx
js 0x47c798
cmp dword [esp + 0x18c], esi
jge 0x47c798
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [0x67eb7c]
call dword [eax + 0x1f0]
cmp dword [esp + 0x4c], ebp
jbe 0x47c9aa
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 [0x67eb7c]
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 [0x67eb7c]
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 [0x67eb7c]
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 0x47c7ec
mov edi, esi
mov dword [esp + 0x54], eax
cmp dword [esp + 0x4c], esi
ja 0x47c691
mov esi, edx
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov eax, dword [0x67eb7c]
call dword [eax + 0x1e8]
jmp 0x47c84c
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
ret
mov ebx, esi
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov eax, dword [0x67eb7c]
call dword [eax + 0x1e8]
cmp dword [esp + 0x4c], edi
jbe 0x47c844
test byte [esp + 0x190], 4
jne 0x47c951
cmp dword [esp + 0x184], edi
jne 0x47c844
test byte [esp + 0x190], 2
je 0x47c833
mov esi, dword [esp + 0x48]
test esi, esi
je 0x47c962
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x48]
mov edi, dword [esp + 0x184]
jmp 0x47c84c
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 0x47c898
mov eax, edi
sub eax, dword [esp + 0x184]
jmp 0x47c7d7
cmp edi, dword [esp + 0x4c]
jae 0x47c88a
mov word [esp + 0x68], 0x20
cmp edi, dword [esp + 0x184]
jbe 0x47c971
mov ebp, dword [esp + 0x184]
mov dword [esp + 0x40], 0
lea ebx, [esp + 0x6a]
jmp 0x47c8d3
mov word [esp + 0x68], dx
mov ebp, eax
cmp edi, eax
jbe 0x47c900
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov eax, dword [0x67eb7c]
call dword [eax + 0x548]
add eax, ebp
mov dx, word [esp + 0x6a]
cmp word [esp + 0x68], 0x20
je 0x47c8c8
cmp dx, 0x20
jne 0x47c8c8
mov dword [esp + 0x40], ebp
jmp 0x47c8c8
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x47c971
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.0047c3f8
jmp 0x47c41c
mov eax, dword [esp + 0x18c]
cmp dword [esp + 0x48], eax
je 0x47c814
mov esi, dword [esp + 0x48]
add esi, dword [esp + 0x74]
mov edi, ebx
jmp 0x47c84c
test byte [esp + 0x190], 2
jne 0x47c88a
xor eax, eax
xor esi, esi
jmp 0x47c7d7
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 0x47c5c2
mov esi, dword [esp + 0x48]
mov edi, ebp
jmp 0x47c77e