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

Disassembly:
mov eax, dword [0x510ae0]
sub esp, 0x64
test eax, eax
je 0x4145a9
push str.balloon_set_chat
call fcn.0043bb00
add esp, 4
push ebx
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll_strncmp]
push esi
mov esi, dword [esp + 0x7c]
push edi
push 4
push str._me
push esi
mov dword [esp + 0x8c], esi
call ebp
add esp, 0xc
test eax, eax
jne 0x4145e2
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 5
jb 0x414d14
push 4
push str.me
push esi
call ebp
add esp, 0xc
test eax, eax
jne 0x414606
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 5
jb 0x414d14
mov edi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 4
push str._me
push esi
call edi
add esp, 0xc
test eax, eax
je 0x41462e
push 4
push str.me
push esi
call edi
add esp, 0xc
test eax, eax
jne 0x414638
add esi, 4
mov dword [esp + 0x80], esi
call fcn.0041c120
test eax, eax
jne 0x414668
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push eax
push ecx
push str._s:__s
push edx
call fcn.00414260
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
xor eax, eax
mov cl, byte [ebx]
mov edi, dword [ebp + 0x10]
cmp cl, 0x5b
sete al
test edi, edi
mov dword [esp + 0x28], eax
je 0x4146c9
mov eax, dword [esp + 0x80]
mov esi, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4146b2
test cl, cl
je 0x4146ae
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4146b2
add eax, 2
add esi, 2
test cl, cl
jne 0x41468e
xor eax, eax
jmp 0x4146b7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x414d14
push edi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov edi, dword [esp + 0x80]
push edi
call fcn.0046ade0
mov dword [ebp + 0x10], eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [ebp + 0x1e], 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov dword [esp + 0x10], ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 0x14]
not ecx
dec ecx
mov edi, ecx
test eax, eax
mov dword [esp + 0x20], edi
je 0x414711
push eax
call fcn.00458d40
add esp, 4
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.00419810
mov ecx, dword [esp + 0x1c]
mov eax, 0x200
add esp, 8
cmp ecx, eax
jle 0x414734
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], eax
jle 0x41473e
mov dword [esp + 0x18], eax
xor eax, eax
lea edx, [esp + 0x4c]
push 0xd15
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [0x4de5e4]
push edx
push edi
mov esi, 0x40
mov ebp, 0x10
push ebx
push eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ebp
call dword [sym.imp.USER32.dll_DrawTextA]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], edx
lea ebx, [ecx + 0x20]
mov dword [esp + 0x2c], ebx
call fcn.004590e0
cmp eax, 2
jne 0x414791
mov ebp, esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
mov eax, 1
push 0xd15
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x48], esi
push eax
mov eax, dword [0x4de5e4]
push ecx
push edx
push eax
mov dword [esp + 0x5c], ebp
call dword [sym.imp.USER32.dll_DrawTextA]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
lea edx, [eax + ecx + 0x10]
mov ecx, dword [esp + 0x44]
cmp ecx, ebx
mov edi, ecx
jg 0x4147e1
mov edi, ebx
cmp edx, ebp
jg 0x4147e9
cmp edi, esi
jle 0x414825
mov edx, dword [esp + 0x14]
cmp ecx, esi
jle 0x414800
lea ecx, [esi + esi]
cmp ecx, edx
jge 0x4147fc
mov esi, ecx
jmp 0x414785
cmp eax, ebp
jle 0x414825
cmp esi, ebp
jne 0x414812
lea ecx, [esi + esi]
cmp ecx, edx
jg 0x414812
mov esi, ecx
jmp 0x414785
mov edx, dword [esp + 0x18]
lea ecx, [ebp + ebp]
cmp ecx, edx
jg 0x414825
mov ebp, ecx
jmp 0x414785
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x78]
push 3
push ebp
mov word [eax + 0x1a], si
mov word [eax + 0x18], bp
mov eax, dword [0x4de5e4]
lea edx, [esp + 0x3c]
push esi
push edx
push eax
call fcn.004189e0
mov ecx, dword [0x4de5e4]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
add esp, 0x14
mov dword [esp + 0x38], eax
push eax
push ecx
call edi
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 4
mov dword [esp + 0x34], eax
call ebx
mov edx, dword [0x4de5e4]
push eax
push edx
call edi
mov eax, dword [0x4de5e4]
push 0xf00021
push ebp
push esi
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_PatBlt]
mov edx, dword [0x4de5e4]
mov ecx, dword [esp + 0x24]
mov eax, 1
push 0xa0a0a
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0
call ebx
push eax
mov eax, dword [0x4de5e4]
push eax
call edi
push 7
call ebx
mov ecx, dword [0x4de5e4]
push eax
push ecx
call edi
push 0xa0a0a
push 0
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov edx, dword [0x4de5e4]
mov ebx, eax
push ebx
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
add eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], esi
call fcn.0041c120
test eax, eax
je 0x4149aa
mov eax, dword [esp + 0x28]
test eax, eax
je 0x414964
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
mov eax, dword [0x4de5e4]
lea edx, [esp + 0x40]
push edx
push eax
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [0x4de5e4]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_Rectangle]
jmp 0x414987
mov eax, dword [esp + 0x24]
push 0x10
push 0x10
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [0x4de5e4]
cdq
sub eax, edx
push esi
sar eax, 1
push eax
push 0
push ecx
call dword [sym.imp.GDI32.dll_RoundRect]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x3c]
push 0x911
push edx
mov edx, dword [0x4de5e4]
push eax
push ecx
push edx
jmp 0x414a32
mov eax, dword [0x4de5e4]
push 0xa0a0a
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x3c]
push 0x911
push ecx
mov ecx, dword [0x4de5e4]
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_DrawTextA]
mov edx, dword [0x4de5e4]
push 0xffffff
push edx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
dec eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
dec edx
dec ecx
dec eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
push 0x911
push eax
mov eax, dword [0x4de5e4]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DrawTextA]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
cdq
sub eax, edx
mov dword [esp + 0x48], ecx
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
mov dword [esp + 0x40], 0
sar eax, 1
sar ecx, 1
mov edx, eax
mov dword [esp + 0x80], eax
sub edx, ecx
add eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x44], eax
call fcn.0041c120
test eax, eax
je 0x414bbc
mov eax, dword [esp + 0x28]
test eax, eax
je 0x414ac1
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, dword [0x4de5e4]
push eax
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [0x4de5e4]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
jmp 0x414ae6
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push 0x10
push 0x10
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [0x4de5e4]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_RoundRect]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x7c]
lea eax, [esp + 0x3c]
push 0x911
push eax
mov eax, dword [0x4de5e4]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DrawTextA]
mov eax, 0x55555556
push 3
imul esi
mov ecx, edx
mov eax, esi
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x28]
sub eax, edx
dec ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], ecx
add ecx, 0x10
lea edx, [eax - 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [0x4de5e4]
lea eax, [esp + 0x60]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x84]
push eax
push ecx
mov dword [esp + 0x78], edx
call dword [sym.imp.GDI32.dll_Polygon]
push 6
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edx, dword [0x4de5e4]
push eax
push edx
call edi
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0xffffff
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
mov eax, dword [0x4de5e4]
push ebx
push eax
call edi
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov eax, dword [0x4de5e4]
push 0
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [0x4de5e4]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
jmp 0x414c45
mov ecx, dword [0x4de5e4]
push 0xa0a0a
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x7c]
lea edx, [esp + 0x3c]
push 0x911
push edx
mov edx, dword [0x4de5e4]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_DrawTextA]
mov eax, dword [0x4de5e4]
push 0xffffff
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
dec ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
dec eax
dec edx
dec ecx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x7c]
push 0x911
push ecx
mov ecx, dword [0x4de5e4]
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_DrawTextA]
push 6
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edx, dword [0x4de5e4]
push eax
push edx
call edi
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x30]
mov ecx, dword [0x4de5e4]
push eax
push ecx
call edi
call dword [sym.imp.GDI32.dll_GdiFlush]
push 8
push ebp
push esi
call fcn.00458460
mov edx, dword [esp + 0x40]
mov edi, eax
push edx
push edi
call fcn.004585f0
push esi
push edi
call fcn.00458610
push 0x4de1e0
push edi
call fcn.004585d0
add esp, 0x24
call fcn.0041c120
neg eax
sbb al, al
and al, 0xa1
dec al
mov byte [0x4de1e7], al
call fcn.004590e0
cmp eax, 2
je 0x414cda
push 0x304
push 0x10
push ebp
push esi
call fcn.00458cd0
mov ebx, dword [esp + 0x88]
add esp, 0x10
test eax, eax
mov dword [ebx + 0x14], eax
jne 0x414cef
jmp 0x414cde
mov ebx, dword [esp + 0x78]
push 4
push 0
push ebp
push esi
call fcn.00458cd0
add esp, 0x10
mov dword [ebx + 0x14], eax
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x414d00
push edi
push ebx
call fcn.00458f40
add esp, 8
push edi
call fcn.004584e0
mov eax, dword [esp + 0x3c]
add esp, 4
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret