Function at 0x433ab0
Capabilities:
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4a9091
mov eax, dword fs:[0]
push eax
sub esp, 0x158
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d92d4]
xor eax, esp
push eax
lea eax, [esp + 0x16c]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x2c], ebp
xor ebx, ebx
cmp byte [ebp + 0x249], bl
jne 0x4325cf
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x180]
push eax
mov eax, dword [esp + 0x180]
push ecx
mov ecx, dword [ebp + 0x250]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
jmp 0x432db0
mov esi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edi, dword [esp + 0x184]
lea ecx, [esp + 0x90]
push ecx
mov word [esp + 0x64], bx
mov word [esp + 0x66], 1
mov edx, dword [esp + 0x64]
push 1
mov dword [esp + 0x74], edx
mov edx, dword [ebp + 0x250]
mov word [esp + 0x6c], bx
mov word [esp + 0x6e], bx
mov eax, dword [esp + 0x6c]
push 0x4b2c10
push edx
mov dword [esp + 0x78], eax
call esi
mov ecx, dword [ebp + 0x250]
lea eax, [esp + 0x88]
push eax
push 2
push 0x4b8868
push ecx
call esi
push 0xd4
lea edx, [esp + 0x9c]
push ebx
push edx
call sub.MSVCR80.dll_memset
mov ecx, dword [ebp + 0x250]
add esp, 0xc
lea eax, [esp + 0x98]
push eax
push 0xd4
push ecx
mov dword [esp + 0xa4], 0xd4
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
test eax, eax
jne 0x4326e5
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x40]
mov esi, eax
mov dword [esp + 0x40], vtable.FCString.0
call fcn.00439660
push str.error___cant_get_outline_text_metrics:
push 0x100
lea ecx, [esp + 0x48]
call fcn.0041d850
mov dword [esp + 0x174], ebx
push 0x20
push ebx
push 0xa
push esi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x14]
push 0x12000
push str.FCString_class
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041d940
jmp 0x432db0
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x9c]
lea esi, [ecx + 3]
and esi, 0xfffffffc
lea edx, [eax + 2]
imul esi, edx
cmp esi, ebx
mov dword [esp + 0x58], esi
jle 0x432db0
add ecx, 9
and ecx, 0xfffffffc
add eax, 6
mov edx, ecx
imul edx, eax
mov eax, dword [ebp + 0x184]
mov dword [esp + 0x54], ecx
mov ecx, eax
shr ecx, 0xa
shr eax, 0xb
and cl, 1
and al, 1
test cl, cl
mov dword [esp + 0x70], edx
mov byte [esp + 0x33], cl
mov byte [esp + 0x1b], al
push 4
je 0x432747
add edx, esi
push edx
jmp 0x432748
push esi
call fcn.0043fa90
add esp, 8
mov esi, edi
push esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, eax
sub eax, esi
mov dword [esp + 0x5c], ecx
je 0x432da1
mov ebx, dword [esp + 0x17c]
cmp eax, 1
movzx esi, byte [edi]
je 0x432786
movzx eax, byte [edi + 1]
add edi, 1
shl esi, 8
add esi, eax
cmp esi, 0x20
jne 0x432797
add ebx, dword [esp + 0x90]
jmp 0x432cdf
cmp esi, 0x8140
jne 0x4327ab
add ebx, dword [esp + 0x88]
jmp 0x432cdf
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x60]
push ecx
push edx
mov edx, dword [ebp + 0x250]
push eax
lea ecx, [esp + 0x80]
push ecx
push 5
push esi
push edx
call dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
cmp eax, 0xffffffff
je 0x432cfb
mov edi, dword [esp + 0x74]
add ebx, dword [esp + 0x7c]
mov esi, dword [ebp + 0x10]
lea eax, [edi + 3]
and eax, 0xfffc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x80]
mov ecx, esi
add eax, dword [esp + 0x180]
mov dword [esp + 0x17c], ebx
push eax
push ebx
call fcn.004200d0
mov ecx, dword [esp + 0x38]
mov edx, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x14], ecx
mov ecx, eax
sub ecx, ebx
cmp edi, ecx
jge 0x432837
mov dword [esp + 0x1c], edi
jmp 0x43283d
sub eax, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 8]
test eax, eax
jge 0x432846
neg eax
sub eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x78]
cmp ebx, eax
jl 0x432869
mov eax, edx
mov eax, dword [eax + 8]
test eax, eax
jge 0x432860
neg eax
sub eax, dword [esp + 0x180]
mov ebx, eax
cmp byte [esp + 0x1b], 0
je 0x4328e5
lea ecx, [esp + 0x40]
call fcn.00401910
mov dword [esp + 0x174], 2
mov ecx, dword [esp + 0x9c]
movsx edx, word [esp + 0x84]
mov eax, dword [esp + 0x7c]
add ecx, 2
push ecx
lea ecx, [edx + eax + 2]
mov edx, dword [esp + 0x184]
push ecx
mov ecx, dword [esp + 0x184]
sub ecx, eax
push edx
push ecx
lea ecx, [esp + 0x50]
call fcn.00401970
movzx eax, byte [ebp + 0x228]
mov ecx, dword [ebp + 0x10]
add al, 0x70
lea edx, [esp + 0x40]
push edx
push eax
call fcn.004293c0
mov dword [esp + 0x174], 0xffffffff
mov dword [esp + 0x40], vtable.FCRect.0
cmp byte [esp + 0x33], 0
je 0x432bb8
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
push edx
mov edi, esi
add esi, ecx
push 0
push esi
call sub.MSVCR80.dll_memset
mov eax, dword [esp + 0x60]
add esp, 0xc
test ebx, ebx
lea esi, [esi + eax*2 + 3]
jle 0x43293c
mov ebp, ebx
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
push ecx
push edi
push esi
call sub.MSVCR80.dll_memcpy
add esi, dword [esp + 0x60]
add edi, dword [esp + 0x34]
add esp, 0xc
sub ebp, 1
jne 0x432920
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
add edx, ebp
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x14], ecx
lea eax, [edx + eax + 1]
lea ecx, [ebx + 2]
je 0x432a9a
test ecx, ecx
jle 0x432cbd
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, eax
sub edx, ebp
add eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x1c], 0
jle 0x432a6b
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov dl, byte [esi + ebp]
test dl, dl
lea edi, [esi + ebp]
je 0x4329ce
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x24c]
add cl, dl
add cl, 0x7f
jmp 0x432a52
mov cl, byte [esi - 1]
xor al, al
test cl, cl
jbe 0x4329d9
mov al, cl
mov cl, byte [esi]
cmp al, cl
jae 0x4329e1
mov al, cl
mov cl, byte [esi + 1]
cmp al, cl
jae 0x4329ea
mov al, cl
mov cl, byte [esi + ebp - 1]
cmp al, cl
jae 0x4329f4
mov al, cl
cmp al, dl
jae 0x4329fa
mov al, dl
mov edx, dword [esp + 0x34]
mov cl, byte [edx]
cmp al, cl
jae 0x432a06
mov al, cl
mov dl, byte [edi + ebp - 1]
cmp al, dl
lea ecx, [edi + ebp - 1]
jae 0x432a14
mov al, dl
mov dl, byte [ecx + 1]
add ecx, 1
cmp al, dl
jae 0x432a20
mov al, dl
add ecx, 1
mov cl, byte [ecx]
cmp al, cl
jae 0x432a2b
mov al, cl
mov edi, dword [esp + 0x2c]
movzx ecx, al
cmp ecx, dword [edi + 0x228]
jg 0x432a47
mov dl, byte [edi + 0x228]
add dl, 0x70
mov byte [ebx], dl
jmp 0x432a54
mov cl, byte [edi + 0x24c]
add cl, al
sub cl, 1
mov byte [ebx], cl
mov eax, 1
add dword [esp + 0x34], eax
add esi, eax
add ebx, eax
sub dword [esp + 0x3c], eax
jne 0x4329b0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
add dword [esp + 0x28], ebp
add dword [esp + 0x20], ebp
add edx, 3
and edx, 0xfffffffc
sub dword [esp + 0x14], edx
sub dword [esp + 0x24], 1
jne 0x43298a
jmp 0x432cbd
test ecx, ecx
jle 0x432cbd
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, eax
sub edx, ebp
add eax, 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x1c], 0
jle 0x432b89
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dl, byte [esi + ebp]
test dl, dl
lea edi, [esi + ebp]
je 0x432b00
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x24c]
add cl, dl
add cl, 0x7f
mov byte [ebx], cl
jmp 0x432b72
mov cl, byte [esi - 1]
xor al, al
test cl, cl
jbe 0x432b0b
mov al, cl
mov cl, byte [esi]
cmp al, cl
jae 0x432b13
mov al, cl
mov cl, byte [esi + 1]
cmp al, cl
jae 0x432b1c
mov al, cl
mov cl, byte [esi + ebp - 1]
cmp al, cl
jae 0x432b26
mov al, cl
cmp al, dl
jae 0x432b2c
mov al, dl
mov edx, dword [esp + 0x20]
mov cl, byte [edx]
cmp al, cl
jae 0x432b38
mov al, cl
mov dl, byte [edi + ebp - 1]
cmp al, dl
lea ecx, [edi + ebp - 1]
jae 0x432b46
mov al, dl
mov dl, byte [ecx + 1]
add ecx, 1
cmp al, dl
jae 0x432b52
mov al, dl
add ecx, 1
mov cl, byte [ecx]
cmp al, cl
jae 0x432b5d
mov al, cl
cmp al, 1
jbe 0x432b72
mov ecx, dword [esp + 0x2c]
mov dl, byte [ecx + 0x24c]
add dl, al
sub dl, 1
mov byte [ebx], dl
mov eax, 1
add dword [esp + 0x20], eax
add esi, eax
add ebx, eax
sub dword [esp + 0x24], eax
jne 0x432ae3
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
add dword [esp + 0x28], ebp
add dword [esp + 0x34], ebp
add eax, 3
and eax, 0xfffffffc
sub dword [esp + 0x14], eax
sub dword [esp + 0x3c], 1
jne 0x432ac0
jmp 0x432cbd
cmp byte [esp + 0x1b], 0
je 0x432c61
test ebx, ebx
jle 0x432cbd
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
jmp 0x432be0
mov edx, dword [esp + 0x1c]
test edx, edx
mov ecx, dword [esp + 0x14]
jle 0x432c3f
mov esi, ebp
sub esi, ecx
mov al, byte [ecx]
cmp al, 1
ja 0x432c03
mov al, byte [edi + 0x228]
add al, 0x70
mov byte [esi + ecx], al
jmp 0x432c37
movzx ebx, al
sub ebx, 1
cmp ebx, dword [edi + 0x228]
jne 0x432c1e
mov al, byte [edi + 0x228]
add al, 0x6f
mov byte [esi + ecx], al
jmp 0x432c37
cmp al, 6
jbe 0x432c29
add al, 0x6f
mov byte [esi + ecx], al
jmp 0x432c37
mov bl, byte [edi + 0x24c]
add bl, al
add bl, 0x7f
mov byte [esi + ecx], bl
add ecx, 1
sub edx, 1
jne 0x432bf0
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x14], ecx
add eax, 3
and eax, 0xfffffffc
sub ebp, eax
sub dword [esp + 0x24], 1
jne 0x432be0
jmp 0x432cbd
test ebx, ebx
jle 0x432cbd
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x1c]
test ebp, ebp
mov eax, dword [esp + 0x14]
jle 0x432c9d
mov esi, edx
sub esi, eax
mov cl, byte [eax]
test cl, cl
jbe 0x432c95
mov bl, byte [edi + 0x24c]
add bl, cl
sub bl, 1
mov byte [esi + eax], bl
add eax, 1
sub ebp, 1
jne 0x432c81
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x14], ecx
add eax, 3
and eax, 0xfffffffc
sub edx, eax
sub dword [esp + 0x24], 1
jne 0x432c71
movsx edx, word [esp + 0x84]
sub edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x2c]
add dword [esp + 0x17c], edx
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x17c]
push ecx
mov edi, ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, eax
mov dword [esp + 0x5c], eax
sub eax, edi
jne 0x432772
jmp 0x432da1
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x40]
mov edi, eax
mov dword [esp + 0x40], vtable.FCString.0
call fcn.00439660
push str.error___textOut:__
push 0x100
lea ecx, [esp + 0x48]
call fcn.0041d850
mov dword [esp + 0x174], 1
mov eax, dword [esp + 0x184]
push eax
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push str.__nuChar_is
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push 0x20
push 0
push 0xa
push esi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
push str.___error_code_is
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push 0x20
push 0
push 0xa
push edi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041d940
mov edx, dword [esp + 0x38]
push 0
push edx
call fcn.0043fae0
add esp, 8
mov ecx, dword [esp + 0x16c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x164
ret 0x10
push 0xffffffffffffffff
push 0x4a90e1
mov eax, dword fs:[0]
push eax
sub esp, 0x158
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d92d4]
xor eax, esp
push eax
lea eax, [esp + 0x16c]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x2c], ebp
xor ebx, ebx
cmp byte [ebp + 0x249], bl
jne 0x432e3f
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x180]
push eax
mov eax, dword [esp + 0x180]
push ecx
mov ecx, dword [ebp + 0x250]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
jmp 0x433620
mov esi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edi, dword [esp + 0x184]
lea ecx, [esp + 0x90]
push ecx
mov word [esp + 0x64], bx
mov word [esp + 0x66], 1
mov edx, dword [esp + 0x64]
push 1
mov dword [esp + 0x74], edx
mov edx, dword [ebp + 0x250]
mov word [esp + 0x6c], bx
mov word [esp + 0x6e], bx
mov eax, dword [esp + 0x6c]
push 0x4b2c10
push edx
mov dword [esp + 0x78], eax
call esi
mov ecx, dword [ebp + 0x250]
lea eax, [esp + 0x88]
push eax
push 2
push 0x4b8868
push ecx
call esi
push 0xd4
lea edx, [esp + 0x9c]
push ebx
push edx
call sub.MSVCR80.dll_memset
mov ecx, dword [ebp + 0x250]
add esp, 0xc
lea eax, [esp + 0x98]
push eax
push 0xd4
push ecx
mov dword [esp + 0xa4], 0xd4
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
test eax, eax
jne 0x432f55
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x40]
mov esi, eax
mov dword [esp + 0x40], vtable.FCString.0
call fcn.00439660
push str.error___cant_get_outline_text_metrics:
push 0x100
lea ecx, [esp + 0x48]
call fcn.0041d850
mov dword [esp + 0x174], ebx
push 0x20
push ebx
push 0xa
push esi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x14]
push 0x12000
push str.FCString_class
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041d940
jmp 0x433620
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x9c]
lea esi, [ecx + 3]
and esi, 0xfffffffc
lea edx, [eax + 2]
imul esi, edx
cmp esi, ebx
mov dword [esp + 0x58], esi
jle 0x433620
add ecx, 9
and ecx, 0xfffffffc
add eax, 6
mov edx, ecx
imul edx, eax
mov eax, dword [ebp + 0x184]
mov dword [esp + 0x54], ecx
mov ecx, eax
shr ecx, 0xa
shr eax, 0xb
and cl, 1
and al, 1
test cl, cl
mov dword [esp + 0x70], edx
mov byte [esp + 0x33], cl
mov byte [esp + 0x1b], al
push 4
je 0x432fb7
add edx, esi
push edx
jmp 0x432fb8
push esi
call fcn.0043fa90
add esp, 8
mov esi, edi
push esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, eax
sub eax, esi
mov dword [esp + 0x5c], ecx
je 0x433611
mov ebx, dword [esp + 0x17c]
cmp eax, 1
movzx esi, byte [edi]
je 0x432ff6
movzx eax, byte [edi + 1]
add edi, 1
shl esi, 8
add esi, eax
cmp esi, 0x20
jne 0x433007
add ebx, dword [esp + 0x90]
jmp 0x43354f
cmp esi, 0x8140
jne 0x43301b
add ebx, dword [esp + 0x88]
jmp 0x43354f
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x60]
push ecx
push edx
mov edx, dword [ebp + 0x250]
push eax
lea ecx, [esp + 0x80]
push ecx
push 5
push esi
push edx
call dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
cmp eax, 0xffffffff
je 0x43356b
mov edi, dword [esp + 0x74]
add ebx, dword [esp + 0x7c]
mov esi, dword [ebp + 0x10]
lea eax, [edi + 3]
and eax, 0xfffc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x80]
mov ecx, esi
add eax, dword [esp + 0x180]
mov dword [esp + 0x17c], ebx
push eax
push ebx
call fcn.004200d0
mov ecx, dword [esp + 0x38]
mov edx, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x14], ecx
mov ecx, eax
sub ecx, ebx
cmp edi, ecx
jge 0x4330a7
mov dword [esp + 0x1c], edi
jmp 0x4330ad
sub eax, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 8]
test eax, eax
jge 0x4330b6
neg eax
sub eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x78]
cmp ebx, eax
jl 0x4330d9
mov eax, edx
mov eax, dword [eax + 8]
test eax, eax
jge 0x4330d0
neg eax
sub eax, dword [esp + 0x180]
mov ebx, eax
cmp byte [esp + 0x1b], 0
je 0x433155
lea ecx, [esp + 0x40]
call fcn.00401910
mov dword [esp + 0x174], 2
mov ecx, dword [esp + 0x9c]
movsx edx, word [esp + 0x84]
mov eax, dword [esp + 0x7c]
add ecx, 2
push ecx
lea ecx, [edx + eax + 2]
mov edx, dword [esp + 0x184]
push ecx
mov ecx, dword [esp + 0x184]
sub ecx, eax
push edx
push ecx
lea ecx, [esp + 0x50]
call fcn.00401970
movzx eax, byte [ebp + 0x228]
mov ecx, dword [ebp + 0x10]
add al, 0x70
lea edx, [esp + 0x40]
push edx
push eax
call fcn.004293c0
mov dword [esp + 0x174], 0xffffffff
mov dword [esp + 0x40], vtable.FCRect.0
cmp byte [esp + 0x33], 0
je 0x433428
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
push edx
mov edi, esi
add esi, ecx
push 0
push esi
call sub.MSVCR80.dll_memset
mov eax, dword [esp + 0x60]
add esp, 0xc
test ebx, ebx
lea esi, [esi + eax*2 + 3]
jle 0x4331ac
mov ebp, ebx
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
push ecx
push edi
push esi
call sub.MSVCR80.dll_memcpy
add esi, dword [esp + 0x60]
add edi, dword [esp + 0x34]
add esp, 0xc
sub ebp, 1
jne 0x433190
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
add edx, ebp
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x14], ecx
lea eax, [edx + eax + 1]
lea ecx, [ebx + 2]
je 0x43330a
test ecx, ecx
jle 0x43352d
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, eax
sub edx, ebp
add eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x1c], 0
jle 0x4332db
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov dl, byte [esi + ebp]
test dl, dl
lea edi, [esi + ebp]
je 0x43323e
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x24c]
add cl, dl
add cl, 0x7f
jmp 0x4332c2
mov cl, byte [esi - 1]
xor al, al
test cl, cl
jbe 0x433249
mov al, cl
mov cl, byte [esi]
cmp al, cl
jae 0x433251
mov al, cl
mov cl, byte [esi + 1]
cmp al, cl
jae 0x43325a
mov al, cl
mov cl, byte [esi + ebp - 1]
cmp al, cl
jae 0x433264
mov al, cl
cmp al, dl
jae 0x43326a
mov al, dl
mov edx, dword [esp + 0x34]
mov cl, byte [edx]
cmp al, cl
jae 0x433276
mov al, cl
mov dl, byte [edi + ebp - 1]
cmp al, dl
lea ecx, [edi + ebp - 1]
jae 0x433284
mov al, dl
mov dl, byte [ecx + 1]
add ecx, 1
cmp al, dl
jae 0x433290
mov al, dl
add ecx, 1
mov cl, byte [ecx]
cmp al, cl
jae 0x43329b
mov al, cl
mov edi, dword [esp + 0x2c]
movzx ecx, al
cmp ecx, dword [edi + 0x228]
jg 0x4332b7
mov dl, byte [edi + 0x228]
add dl, 0x70
mov byte [ebx], dl
jmp 0x4332c4
mov cl, byte [edi + 0x24c]
add cl, al
sub cl, 1
mov byte [ebx], cl
mov eax, 1
add dword [esp + 0x34], eax
add esi, eax
add ebx, eax
sub dword [esp + 0x3c], eax
jne 0x433220
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
add dword [esp + 0x28], ebp
add dword [esp + 0x20], ebp
add edx, 3
and edx, 0xfffffffc
sub dword [esp + 0x14], edx
sub dword [esp + 0x24], 1
jne 0x4331fa
jmp 0x43352d
test ecx, ecx
jle 0x43352d
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, eax
sub edx, ebp
add eax, 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x1c], 0
jle 0x4333f9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dl, byte [esi + ebp]
test dl, dl
lea edi, [esi + ebp]
je 0x433370
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x24c]
add cl, dl
add cl, 0x7f
mov byte [ebx], cl
jmp 0x4333e2
mov cl, byte [esi - 1]
xor al, al
test cl, cl
jbe 0x43337b
mov al, cl
mov cl, byte [esi]
cmp al, cl
jae 0x433383
mov al, cl
mov cl, byte [esi + 1]
cmp al, cl
jae 0x43338c
mov al, cl
mov cl, byte [esi + ebp - 1]
cmp al, cl
jae 0x433396
mov al, cl
cmp al, dl
jae 0x43339c
mov al, dl
mov edx, dword [esp + 0x20]
mov cl, byte [edx]
cmp al, cl
jae 0x4333a8
mov al, cl
mov dl, byte [edi + ebp - 1]
cmp al, dl
lea ecx, [edi + ebp - 1]
jae 0x4333b6
mov al, dl
mov dl, byte [ecx + 1]
add ecx, 1
cmp al, dl
jae 0x4333c2
mov al, dl
add ecx, 1
mov cl, byte [ecx]
cmp al, cl
jae 0x4333cd
mov al, cl
cmp al, 1
jbe 0x4333e2
mov ecx, dword [esp + 0x2c]
mov dl, byte [ecx + 0x24c]
add dl, al
sub dl, 1
mov byte [ebx], dl
mov eax, 1
add dword [esp + 0x20], eax
add esi, eax
add ebx, eax
sub dword [esp + 0x24], eax
jne 0x433353
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
add dword [esp + 0x28], ebp
add dword [esp + 0x34], ebp
add eax, 3
and eax, 0xfffffffc
sub dword [esp + 0x14], eax
sub dword [esp + 0x3c], 1
jne 0x433330
jmp 0x43352d
cmp byte [esp + 0x1b], 0
je 0x4334d1
test ebx, ebx
jle 0x43352d
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
jmp 0x433450
mov edx, dword [esp + 0x1c]
test edx, edx
mov ecx, dword [esp + 0x14]
jle 0x4334af
mov esi, ebp
sub esi, ecx
mov al, byte [ecx]
cmp al, 1
ja 0x433473
mov al, byte [edi + 0x228]
add al, 0x70
mov byte [esi + ecx], al
jmp 0x4334a7
movzx ebx, al
sub ebx, 1
cmp ebx, dword [edi + 0x228]
jne 0x43348e
mov al, byte [edi + 0x228]
add al, 0x6f
mov byte [esi + ecx], al
jmp 0x4334a7
cmp al, 6
jbe 0x433499
add al, 0x6f
mov byte [esi + ecx], al
jmp 0x4334a7
mov bl, byte [edi + 0x24c]
add bl, al
add bl, 0x7f
mov byte [esi + ecx], bl
add ecx, 1
sub edx, 1
jne 0x433460
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x14], ecx
add eax, 3
and eax, 0xfffffffc
sub ebp, eax
sub dword [esp + 0x24], 1
jne 0x433450
jmp 0x43352d
test ebx, ebx
jle 0x43352d
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x1c]
test ebp, ebp
mov eax, dword [esp + 0x14]
jle 0x43350d
mov esi, edx
sub esi, eax
mov cl, byte [eax]
test cl, cl
jbe 0x433505
mov bl, byte [edi + 0x24c]
add bl, cl
sub bl, 1
mov byte [esi + eax], bl
add eax, 1
sub ebp, 1
jne 0x4334f1
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x14], ecx
add eax, 3
and eax, 0xfffffffc
sub edx, eax
sub dword [esp + 0x24], 1
jne 0x4334e1
movsx edx, word [esp + 0x84]
sub edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x2c]
add dword [esp + 0x17c], edx
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x17c]
push ecx
mov edi, ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, eax
mov dword [esp + 0x5c], eax
sub eax, edi
jne 0x432fe2
jmp 0x433611
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x40]
mov edi, eax
mov dword [esp + 0x40], vtable.FCString.0
call fcn.00439660
push str.error___textOut:__
push 0x100
lea ecx, [esp + 0x48]
call fcn.0041d850
mov dword [esp + 0x174], 1
mov eax, dword [esp + 0x184]
push eax
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push str.__nuChar_is
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push 0x20
push 0
push 0xa
push esi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
push str.___error_code_is
lea ecx, [esp + 0x44]
call fcn.0041d9f0
push 0x20
push 0
push 0xa
push edi
lea ecx, [esp + 0x50]
call fcn.0041e3f0
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041d940
mov edx, dword [esp + 0x38]
push 0
push edx
call fcn.0043fae0
add esp, 8
mov ecx, dword [esp + 0x16c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x164
ret 0x10
mov eax, dword [ecx + 4]
shr eax, 2
test al, 1
je 0x433abf
jmp 0x432560
jmp 0x432dd0