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

Disassembly:
push 0xffffffffffffffff
push 0x7b6b7b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x160
mov eax, dword [0x871218]
push ebx
push ebp
xor ebp, ebp
mov ebx, ecx
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x38], ebx
je 0x437d95
mov edi, dword [esp + 0x180]
mov edx, dword [edi + 8]
cmp edx, ebp
jne 0x43771c
mov eax, dword [0x7e565c]
lea ecx, [ebx + 0x18]
push eax
push ebp
push edi
call fcn.00404c60
mov eax, dword [ebx + 0x44]
mov dword [ebx + 0x5c], ebp
cmp eax, ebp
je 0x437715
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x44], ebp
xor eax, eax
jmp 0x437d9a
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x20]
lea esi, [ebx + 0x18]
cmp eax, ebp
jne 0x43772e
mov eax, 0x7e5658
push ecx
push eax
push edx
push ebp
mov ecx, edi
call fcn.0040b7c0
cmp eax, ebp
jne 0x437744
xor eax, eax
jmp 0x437d9a
mov edx, dword [0x7e565c]
mov edi, dword [esp + 0x180]
push edx
push 0
push edi
mov ecx, esi
call fcn.00404c60
mov al, byte [esp + 0x2f]
mov esi, dword [edi + 8]
mov byte [esp + 0x1c], al
xor eax, eax
push 0x3f
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], esi
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
call fcn.0040b1e0
test esi, esi
mov dword [esp + 0x178], ebp
jle 0x4378aa
mov dword [esp + 0x10], 2
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + 4]
mov ecx, 0x7e5658
test eax, eax
je 0x4377b6
lea ecx, [eax + edi]
cmp byte [ecx], 0xa
je 0x437894
test eax, eax
mov ecx, 0x7e5658
je 0x4377cb
lea ecx, [eax + edi]
test byte [ecx], 0x80
je 0x437842
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
jg 0x4378aa
test eax, eax
mov esi, 0x7e5658
je 0x4377ec
lea esi, [eax + edi]
mov edx, dword [esp + 0x24]
cmp edx, ebp
jb 0x437828
mov eax, dword [esp + 0x20]
test eax, eax
je 0x437828
mov cl, byte [eax - 1]
test cl, cl
je 0x437818
cmp cl, 0xff
je 0x437818
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.00401b40
mov eax, dword [esp + 0x20]
test eax, eax
je 0x437824
mov byte [eax - 1], 0xff
mov eax, dword [esp + 0x20]
add eax, ebp
jmp 0x43782d
mov eax, 0x7e5658
mov cx, word [esi]
add ebp, 2
mov word [eax], cx
mov eax, dword [esp + 0x10]
add edi, 2
add eax, 2
jmp 0x43789a
test eax, eax
mov esi, 0x7e5658
je 0x43784e
lea esi, [eax + edi]
mov edx, dword [esp + 0x24]
cmp edx, ebp
jb 0x43788a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x43788a
mov cl, byte [eax - 1]
test cl, cl
je 0x43787a
cmp cl, 0xff
je 0x43787a
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.00401b40
mov eax, dword [esp + 0x20]
test eax, eax
je 0x437886
mov byte [eax - 1], 0xff
mov eax, dword [esp + 0x20]
add eax, ebp
jmp 0x43788f
mov eax, 0x7e5658
mov dl, byte [esi]
inc ebp
mov byte [eax], dl
mov eax, dword [esp + 0x10]
inc edi
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
cmp edi, eax
jl 0x4377a0
mov ecx, ebx
call fcn.00437300
push 0x8b15c0
mov esi, eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [0x871218]
push esi
push eax
call dword [sym.imp.gdi32.dll_SelectObject]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4378d8
mov eax, 0x7e5658
mov edx, dword [esp + 0x24]
mov ebp, dword [sym.imp.gdi32.dll_GetTextExtentPoint32A]
lea ecx, [esp + 0x30]
push ecx
push edx
push eax
mov eax, dword [0x871218]
push eax
call ebp
test eax, eax
jne 0x43792c
push 1
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, dword [0x871218]
push esi
push ecx
call dword [sym.imp.gdi32.dll_SelectObject]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x437918
mov eax, 0x7e5658
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x30]
push edx
mov edx, dword [0x871218]
push ecx
push eax
push edx
call ebp
mov ecx, dword [esp + 0x30]
test ecx, ecx
jle 0x437b76
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x437b76
test dword [esp + 0x184], 0x8000000
je 0x437956
inc eax
mov dword [esp + 0x34], eax
imul eax, ecx
mov edi, eax
lea eax, [esp + 0x40]
push eax
push 0x82b7a4
call dword [sym.imp.kernel32.dll_lstrlenA]
mov ecx, dword [0x871218]
push eax
push 0x82b7a4
push ecx
call ebp
mov eax, dword [esp + 0x40]
mov ecx, eax
and ecx, 0x80000001
jns 0x43798d
dec ecx
or ecx, 0xfffffffe
inc ecx
cdq
sub eax, edx
mov dword [esp + 0x48], 0x40
sar eax, 1
add ecx, eax
mov dword [esp + 0x4c], 0x80
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], 0x100
mov dword [esp + 0x54], 0x200
mov dword [esp + 0x58], 0x400
mov dword [esp + 0x5c], 0x800
xor esi, esi
lea edx, [esp + 0x48]
mov eax, dword [edx]
mov ebp, eax
sub ebp, dword [esp + 0x44]
sub ebp, ecx
dec ebp
imul ebp, eax
cmp edi, ebp
jle 0x4379eb
inc esi
add edx, 4
cmp esi, 6
jl 0x4379ce
jmp 0x4379f5
mov esi, dword [esp + esi*4 + 0x48]
mov dword [ebx + 0x50], esi
mov dword [ebx + 0x4c], esi
mov eax, dword [ebx + 0x40]
lea ecx, [esp + 0x9c]
mov dword [ebx + 0x54], 0x3f800000
push ecx
mov edx, dword [eax]
push eax
call dword [edx + 0x1c]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [esp + 0xf4]
cmp ecx, eax
jbe 0x437a3e
xor edx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [ebx + 0x50], eax
fild qword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [ebx + 0x4c], eax
fidiv dword [esp + 0x14]
fstp dword [ebx + 0x54]
mov edx, dword [ebx + 0x44]
lea ebp, [ebx + 0x44]
test edx, edx
je 0x437a7d
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
mov eax, dword [edx]
lea ecx, [esp + 0x48]
push ecx
push 0
push edx
call dword [eax + 0x38]
mov edx, dword [esp + 0x60]
mov eax, dword [ebx + 0x4c]
cmp edx, eax
je 0x437a7d
mov eax, dword [ebp]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebp], 0
cmp dword [ebp], 0
jne 0x437afa
mov al, byte [esp + 0x184]
mov ecx, 1
test al, 0x20
je 0x437a95
xor ecx, ecx
mov eax, dword [ebx + 0x40]
push ebp
push 1
push 0x1a
mov edx, dword [eax]
push 0
push ecx
mov ecx, dword [ebx + 0x50]
push ecx
mov ecx, dword [ebx + 0x4c]
push ecx
push eax
call dword [edx + 0x50]
mov esi, eax
test esi, esi
jge 0x437afa
push 0x8b15c0
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x178], 0xffffffff
test ecx, ecx
je 0x437af3
mov al, byte [ecx - 1]
test al, al
je 0x437ae9
cmp al, 0xff
je 0x437ae9
dec al
mov byte [ecx - 1], al
mov eax, esi
jmp 0x437d9a
dec ecx
push ecx
call fcn.007a02e0
add esp, 4
mov eax, esi
jmp 0x437d9a
mov edx, dword [ebx + 0x4c]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x50]
push 0
neg eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x78], edx
push 0
mov dword [esp + 0x80], eax
mov eax, dword [0x871218]
push ecx
lea edx, [esp + 0x7c]
push 0
push edx
push eax
mov dword [esp + 0x88], 0x28
mov word [esp + 0x94], 1
mov dword [esp + 0x98], 0
mov word [esp + 0x96], 0x20
call dword [sym.imp.gdi32.dll_CreateDIBSection]
mov edi, eax
test edi, edi
jne 0x437bb5
mov eax, dword [ebp]
test eax, eax
je 0x437b76
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp], edi
push 0x8b15c0
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x178], 0xffffffff
test ecx, ecx
je 0x437d95
mov al, byte [ecx - 1]
test al, al
je 0x437d8b
cmp al, 0xff
je 0x437d8b
dec al
mov byte [ecx - 1], al
jmp 0x437d95
mov edx, dword [0x871218]
push edi
push edx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [esp + 0x14], eax
mov eax, dword [0x871218]
push 0xffffff
push eax
call dword [sym.imp.gdi32.dll_SetTextColor]
mov ecx, dword [0x871218]
push 0
push ecx
call dword [sym.imp.gdi32.dll_SetBkColor]
mov edx, dword [0x871218]
push 0
push edx
call dword [sym.imp.gdi32.dll_SetTextAlign]
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x437c13
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov ecx, ebx
call fcn.00437dc0
jmp 0x437c2f
mov edx, dword [esp + 0x184]
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.004387d0
mov eax, dword [ebp]
push 0
lea ecx, [esp + 0x6c]
push 0
mov edx, dword [eax]
push ecx
push 0
push eax
call dword [edx + 0x40]
mov eax, dword [ebx + 0x50]
mov ecx, dword [esp + 0x6c]
xor esi, esi
test eax, eax
jbe 0x437c99
mov eax, dword [ebx + 0x4c]
xor edx, edx
test eax, eax
jbe 0x437c91
imul eax, esi
mov ebx, dword [esp + 0x3c]
add eax, edx
mov eax, dword [ebx + eax*4]
shr eax, 4
and al, 0xf
jbe 0x437c7d
movzx ax, al
shl eax, 0xc
or eax, 0xfff
mov word [ecx], ax
jmp 0x437c82
mov word [ecx], 0
mov ebx, dword [esp + 0x38]
add ecx, 2
inc edx
mov eax, dword [ebx + 0x4c]
cmp edx, eax
jb 0x437c59
mov eax, dword [ebx + 0x50]
inc esi
cmp esi, eax
jb 0x437c50
mov eax, dword [ebp]
xor ebx, ebx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov edx, dword [esp + 0x14]
mov eax, dword [0x871218]
push edx
push eax
call dword [sym.imp.gdi32.dll_SelectObject]
push edi
call dword [sym.imp.gdi32.dll_DeleteObject]
push 0x8b15c0
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
test byte [esp + 0x184], 0x20
je 0x437d56
mov eax, dword [ebp]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edi, eax
mov esi, 1
cmp edi, esi
jle 0x437d56
mov eax, dword [ebp]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esi - 1]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x3c]
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
push ecx
push esi
mov edx, dword [eax]
push eax
call dword [edx + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, ebx
je 0x437d47
cmp ecx, ebx
je 0x437d39
push ebx
push 4
push ebx
push ebx
push eax
push ebx
push ebx
push ecx
call fcn.00771085
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, ebx
je 0x437d47
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x437d51
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
inc esi
cmp esi, edi
jl 0x437cea
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x178], 0xffffffff
cmp ecx, ebx
je 0x437d87
mov al, byte [ecx - 1]
test al, al
je 0x437d7d
cmp al, 0xff
je 0x437d7d
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x437d9a
dec ecx
push ecx
call fcn.007a02e0
add esp, 4
xor eax, eax
jmp 0x437d9a
dec ecx
push ecx
call fcn.007a02e0
add esp, 4
mov eax, 0x80004005
mov ecx, dword [esp + 0x170]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x16c
ret 8