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

Disassembly:
sub esp, 0xd4
push ebx
push ebp
push esi
mov esi, ecx
mov ebp, dword [esi + 0x2ec]
mov ecx, dword [esi + 0x2e4]
mov eax, dword [ecx]
push edi
mov edi, dword [esi + 0x2e8]
add ebp, 0x21
add edi, 0x37
mov dword [esp + 0x18], ebp
call dword [eax + 4]
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
push 3
push 0x190
push 0x14
push 0
push str.Tahoma
call fcn.004321c0
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432120
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432290
mov eax, dword [esi + 0x110]
mov ecx, eax
sub ecx, 2
je 0x40cb3f
dec ecx
je 0x40cb38
dec ecx
je 0x40cb31
mov ecx, 0xaaffff
jmp 0x40cb44
mov ecx, 0xaaaaff
jmp 0x40cb44
mov ecx, 0xaaffaa
jmp 0x40cb44
mov ecx, 0xffbbbb
mov edx, dword [esi + 0x10c]
mov eax, dword [eax*4 + 0x4c1488]
push edx
mov edx, dword [esi + 0x2e0]
push ecx
lea ecx, [eax + edi + 0xa]
push ebp
push ecx
mov ecx, dword [edx + 0x18]
call fcn.004322d0
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432170
add ebp, 0x1e
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ebp
lea ebx, [esi + 0x1c]
jmp 0x40cb90
mov eax, dword [esi + 0x110]
cmp eax, 1
je 0x40cbbe
cmp eax, 2
je 0x40cbbe
cmp eax, 3
je 0x40cbbe
cmp eax, 4
je 0x40cbbe
cmp eax, 6
je 0x40cbbe
cmp eax, 8
je 0x40cbbe
cmp eax, 0xa
je 0x40cbbe
cmp eax, 0xc
jne 0x40cc2b
mov al, byte [esi + 0x118]
test al, al
je 0x40cc2b
mov al, byte [esi + 0x2f4]
test al, al
je 0x40cbf7
mov eax, dword [esi + 0x2f0]
test eax, eax
jne 0x40cbed
mov byte [esi + 0x2f4], 0
mov dword [esi + 0x2f0], 0x64
mov al, byte [esi + 0x2f4]
test al, al
jne 0x40cc0a
cmp dword [esi + 0x2f0], 0xb4
jne 0x40cc0a
mov byte [esi + 0x2f4], 1
mov al, byte [esi + 0x2f4]
test al, al
je 0x40cc25
mov ecx, dword [esi + 0x2f0]
dec ecx
test al, al
mov dword [esi + 0x2f0], ecx
jne 0x40cc2b
inc dword [esi + 0x2f0]
mov eax, dword [ebx]
push str.Empty
push eax
call fcn.004694cc
add esp, 8
test eax, eax
je 0x40cf7a
mov al, byte [esi + 0x118]
test al, al
je 0x40cc7c
mov eax, dword [esi + 0x11c]
mov ecx, dword [ebx]
push eax
push ecx
call fcn.004694cc
add esp, 8
test eax, eax
jne 0x40cc7c
mov ecx, dword [ebx + 4]
cmp ecx, dword [esi + 0x120]
jne 0x40cc7c
mov al, byte [esi + 0x2f4]
test al, al
je 0x40cf7a
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
push 3
push 0x190
push 0x14
push 0
push str.Tahoma
call fcn.004321c0
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432120
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432290
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push 0x4a3b68
push eax
call fcn.00468e67
mov edx, dword [esp + 0x20]
add esp, 0xc
dec edx
mov eax, 0xf
sub eax, edx
mov edx, dword [esi + 0x2e0]
imul eax, eax, 0x111111
lea ecx, [esp + 0x1c]
push ecx
push eax
push ebp
lea ecx, [edi - 0x1e]
push ecx
mov ecx, dword [edx + 0x18]
call fcn.004322d0
mov eax, dword [ebx]
push eax
lea ecx, [esp + 0x20]
push 0x4a41ac
push ecx
call fcn.00468e67
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push 0xffffff
push ebp
lea eax, [edi - 8]
push eax
call fcn.004322d0
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432170
mov eax, dword [esi + 0x110]
cmp eax, 5
je 0x40ce0f
cmp eax, 7
je 0x40ce0f
cmp eax, 9
je 0x40ce0f
cmp eax, 0xb
je 0x40ce0f
cmp eax, 0xd
je 0x40ce0f
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
push 3
push 0x190
push 0x14
push 0
push str.Tahoma
call fcn.004321c0
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432120
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432290
mov eax, dword [ebx + 4]
push eax
lea ecx, [esp + 0x20]
push 0x4a3b68
push ecx
call fcn.00468e67
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
add esp, 0xc
dec eax
lea edx, [esp + 0x1c]
push edx
je 0x40cded
dec eax
je 0x40cde6
dec eax
lea eax, [edi + 0x4b]
je 0x40cddf
push 0xffffff
jmp 0x40cdf5
push 0xaaaaff
jmp 0x40cdf5
push 0xaaffaa
jmp 0x40cdf2
push 0xffbbbb
lea eax, [edi + 0x4b]
push ebp
push eax
call fcn.004322d0
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432170
jmp 0x40cf7a
mov eax, dword [ebx + 0xc]
cmp dword [eax - 0xc], 7
push 3
push 0x190
jg 0x40ce7e
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
push 0x14
push 0
push str.Courier
call fcn.004321c0
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432120
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432290
mov ecx, dword [ebx + 0xc]
push ecx
lea edx, [esp + 0x20]
push str._7.7s
push edx
call fcn.00468e67
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
add ebp, 5
push 0xffbbbb
lea ecx, [ebp - 4]
push ecx
lea edx, [edi + 0x3c]
jmp 0x40ced8
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
push 0xa
push 0
push str.Courier
call fcn.004321c0
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432120
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432290
mov edx, dword [ebx + 0xc]
push edx
lea eax, [esp + 0x20]
push str._14.14s
push eax
call fcn.00468e67
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
add ebp, 5
push 0xffbbbb
push ebp
lea edx, [edi + 0x23]
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
push edx
call fcn.004322d0
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432170
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
push 3
push 0x190
push 0xc
push 0
push str.Tahoma
call fcn.004321c0
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432120
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432290
mov edx, dword [ebx + 0x10]
push edx
lea eax, [esp + 0x20]
push 0x4a4190
push eax
call fcn.00468e67
mov eax, dword [esi + 0x2e0]
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x18]
push 0xaaffaa
add ebp, 0xc
push ebp
lea edx, [edi + 0x8c]
push edx
call fcn.004322d0
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432170
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc eax
add ebp, 0x1e
add ebx, 0x18
cmp eax, 0xa
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
jle 0x40cb90
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
push 3
push 0x190
push 0xc
push 0
push str.Tahoma
call fcn.004321c0
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
call fcn.00432120
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
call fcn.00432290
mov ebx, dword [esp + 0x18]
add ebx, 0x26
lea ebp, [esi + 0x24]
mov dword [esp + 0x10], 0xa
mov eax, dword [ebp - 8]
push str.Empty
push eax
call fcn.004694cc
add esp, 8
test eax, eax
je 0x40d054
mov eax, dword [ebp]
dec eax
je 0x40d037
dec eax
je 0x40d01d
dec eax
jne 0x40d054
mov eax, dword [esi + 0x2e0]
mov ecx, dword [eax + 0x18]
push str.v.Human
push 0xaaaaff
push ebx
lea edx, [edi + 0x78]
push edx
jmp 0x40d04f
mov edx, dword [esi + 0x2e0]
push str.v.Maven
push 0xaaffaa
lea ecx, [edi + 0x78]
push ebx
push ecx
mov ecx, dword [edx + 0x18]
jmp 0x40d04f
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx + 0x18]
push str.Solitaire
push 0xffbbbb
push ebx
lea eax, [edi + 0x78]
push eax
call fcn.004322d0
mov eax, dword [esp + 0x10]
add ebp, 0x18
add ebx, 0x1e
dec eax
mov dword [esp + 0x10], eax
jne 0x40cfe2
mov edx, dword [esi + 0x2e0]
mov ecx, dword [edx + 0x18]
call fcn.00432170
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret