Function at 0x40174e
Capabilities:
Print debug messages

Disassembly:
jmp 0x4e0b20
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x31]
mov esi, dword [esp + 0x138]
mov byte [esp + 0x30], 0
mov dword [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, esi
shl eax, 5
add eax, esi
lea ecx, [esi + eax*2]
mov edx, dword [ecx*4 + 0x552dc4]
push edx
call fcn.00403210
mov ebx, dword [esp + 0x138]
mov dword [esp + 0x28], eax
mov eax, ebx
shl eax, 5
add eax, ebx
lea ecx, [ebx + eax*2]
mov edx, dword [ecx*4 + 0x552dc4]
push edx
call fcn.00403210
mov dword [esp + 0x28], eax
mov ecx, dword [0x5552b0]
lea eax, [esi + esi*2]
add esp, 8
lea eax, [eax + eax*4]
shl eax, 5
add eax, esi
lea edx, [ecx + eax*4 + 0x698]
lea eax, [ebx + ebx*2]
mov dword [esp + 0x10], edx
lea eax, [eax + eax*4]
mov dword [edx + 0x348], ebx
shl eax, 5
add eax, ebx
lea ebp, [ecx + eax*4 + 0x698]
mov ecx, dword [0x5469ac]
mov eax, dword [ecx + 0x70]
cmp eax, 1
jne 0x4e0bd6
mov ecx, 8
jmp 0x4e0bdd
mov ecx, 5
sub ecx, eax
push ecx
push 0
push ecx
call fcn.00403a30
mov edx, dword [ebp + 0x64]
lea edi, [eax + eax*4]
mov eax, dword [ebp + 0x348]
add esp, 0xc
shl edi, 1
mov ecx, dword [ebp + eax*4 + 0x368]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
call fcn.0050f2e2
cdq
idiv dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add edx, edi
cmp edx, eax
jge 0x4e108c
mov edx, dword [0x5469ac]
cmp dword [edx + 0x70], 1
jle 0x4e108c
push esi
call fcn.00402e6e
push ebx
mov edi, eax
call fcn.00402e6e
mov ecx, dword [0x5552b0]
add esp, 8
mov dword [esp + 0x1c], eax
push 0x63
call fcn.004025ae
mov ecx, dword [0x5552b0]
push 0x63
mov dword [esp + 0x2c], eax
call fcn.00403297
mov ecx, dword [0x5552b0]
push ebx
mov dword [esp + 0x30], eax
call fcn.004025ae
mov ecx, dword [0x5552b0]
push ebx
mov dword [esp + 0x1c], eax
call fcn.00403297
test edi, edi
jle 0x4e108c
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x4e108c
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp ecx, edx
jne 0x4e0ca7
cmp dword [esp + 0x2c], eax
je 0x4e0cb5
cmp ecx, 0xa
jg 0x4e0cb5
cmp eax, 4
jle 0x4e108c
cmp dword [ebp + 0x10], 1
jne 0x4e0cd3
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x34]
call fcn.0050f2e2
cdq
mov ecx, 0x96
idiv ecx
cmp edx, edi
jl 0x4e0cfa
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4e108c
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 0x34]
call fcn.0050f2e2
cdq
mov ecx, 0x64
idiv ecx
cmp edx, edi
jge 0x4e108c
push 2
push ebx
call fcn.004021df
push 2
push esi
mov edi, eax
call fcn.004021df
add esp, 0x10
cmp eax, edi
jg 0x4e0d49
call fcn.00402874
mov edi, eax
call fcn.004022c5
cdq
idiv edi
push 0x14
push 4
push eax
call fcn.00403a30
mov edi, eax
push edi
push esi
call fcn.004021df
push edi
push ebx
mov esi, eax
call fcn.004021df
add esp, 0x1c
cmp esi, eax
jle 0x4e108c
mov eax, dword [esp + 0x13c]
cmp eax, 0xffffffff
jne 0x4e0e2b
mov eax, dword [0x546aa4]
test eax, eax
je 0x4e1069
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push edx
push ebp
push eax
push ecx
lea edx, [esp + 0x40]
push str._s__s__is_considering_a_level_2_alliance_with__s__s_
push edx
call fcn.0050fb85
mov eax, dword [0x563acc]
add esp, 0x18
cmp eax, 9
jl 0x4e1030
xor edx, edx
mov dword [0x563ad0], edx
mov edi, dword [edx*4 + 0x563aac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [0x563ad0]
inc edx
cmp edx, 8
mov dword [0x563ad0], edx
jl 0x4e0d9e
mov edi, 0x549b78
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x30]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x563ad0]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [eax*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4e1059
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
mov ecx, dword [0x5552b0]
mov ecx, dword [ecx + 0x5d4]
mov dword [ecx + edx*4 + 0x84], ebx
lea esi, [ecx + edx*4]
mov ecx, dword [esi + ebx*4 + 0x2c]
test ecx, ecx
jne 0x4e108c
push eax
call fcn.00402649
add esp, 4
cmp eax, 0xffffffff
jne 0x4e0f37
mov eax, dword [0x546aa4]
test eax, eax
je 0x4e1069
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push edx
push ebp
push eax
push ecx
lea edx, [esp + 0x40]
push str._s__s__is_considering_a_level_2_alliance_with__s__s_
push edx
call fcn.0050fb85
mov eax, dword [0x563acc]
add esp, 0x18
cmp eax, 9
jl 0x4e1030
xor edx, edx
mov dword [0x563ad0], edx
mov edi, dword [edx*4 + 0x563aac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [0x563ad0]
inc edx
cmp edx, 8
mov dword [0x563ad0], edx
jl 0x4e0eaa
mov edi, 0x549b78
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x30]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x563ad0]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [eax*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4e1059
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
mov eax, dword [0x5552b0]
mov ecx, dword [eax + 0x5d4]
mov dword [ecx + edx*4 + 0x84], ebx
mov edx, dword [esi + 0x84]
mov eax, dword [esi + edx*4 + 0x2c]
test eax, eax
jne 0x4e108c
mov eax, dword [0x546aa4]
test eax, eax
je 0x4e1069
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
push eax
push ebp
push ecx
push edx
lea eax, [esp + 0x40]
push str._s__s__is_considering_a_level_2_alliance_with__s__s_
push eax
call fcn.0050fb85
mov eax, dword [0x563acc]
add esp, 0x18
cmp eax, 9
jl 0x4e1030
xor edx, edx
mov dword [0x563ad0], edx
mov edi, dword [edx*4 + 0x563aac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [0x563ad0]
inc edx
cmp edx, 8
mov dword [0x563ad0], edx
jl 0x4e0fa6
mov edi, 0x549b78
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x30]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x563ad0]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [eax*4 + 0x563aa8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4e1059
mov edx, dword [eax*4 + 0x563aa8]
inc eax
mov dword [0x563acc], eax
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [0x5552b0]
mov dword [esp + 0x14], 1
mov dword [edx + 0x5a24], 3
mov eax, dword [0x5552b0]
mov dword [eax + 0x5a3c], ebx
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret