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

Disassembly:
push 0xffffffffffffffff
push 0x751ac4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c8
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x160]
mov dword [esp + 0x14], edi
call fcn.00617e50
xor ebp, ebp
mov esi, vtable.CBSList_unsigned_short_int_.0
mov dword [esp + 0x1e0], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ebp
mov eax, 1
mov dword [esp + 0xb4], vtable.CBArray_unsigned_short_int_.0
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x88], vtable.CBArray_unsigned_long_int_.0
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], vtable.CBArray_struct_TEconomyEntry__.0
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ebp
or ebx, 0xffffffff
push ebx
push 0x7ec438
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1e8], 4
call fcn.00413870
mov eax, dword [esp + 0x1e8]
cmp eax, ebp
mov byte [esp + 0x1e0], 5
je 0x673e8d
push eax
lea eax, [esp + 0x48]
push str.map_kingdoms__s.ini
push eax
call fcn.00413950
add esp, 0xc
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00402300
add esp, 4
test eax, eax
jne 0x673ee6
lea ecx, [esp + 0x44]
mov byte [esp + 0x1e0], 4
call fcn.00412de0
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x30]
mov byte [esp + 0x1e0], 6
call fcn.00548f00
lea ecx, [esp + 0x160]
mov dword [esp + 0x30], vtable.CBList_unsigned_short_int_.0
mov dword [esp + 0x1e0], ebx
call fcn.00616d60
xor eax, eax
jmp 0x674a7d
push 0x48
call fcn.0040fa60
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1e0], 7
je 0x673f0b
mov ecx, eax
call fcn.004049b0
mov esi, eax
jmp 0x673f0d
xor esi, esi
mov eax, dword [esp + 0x44]
mov edx, dword [esi]
push eax
mov ecx, esi
mov byte [esp + 0x1e4], 5
call dword [edx + 0x18]
cmp eax, ebp
je 0x673f61
lea ecx, [esp + 0x44]
mov byte [esp + 0x1e0], 4
call fcn.00412de0
lea ecx, [esp + 0x30]
mov byte [esp + 0x1e0], 0
call fcn.00560fd0
lea ecx, [esp + 0x160]
mov dword [esp + 0x1e0], ebx
call fcn.00616d60
xor eax, eax
jmp 0x674a7d
mov ecx, dword [0x912e94]
mov eax, dword [ecx + 0xc]
cmp eax, ebp
je 0x673f7a
mov edx, dword [eax + 0xfc]
mov dword [esp + 0x54], edx
jmp 0x673f7e
mov dword [esp + 0x54], ebp
cmp eax, ebp
je 0x673f88
mov dword [eax + 0xfc], ebp
mov eax, dword [edi + 0x1a8]
lea ebp, [edi + 0x1a8]
mov ecx, ebp
xor ebx, ebx
call dword [eax + 0xc]
test eax, eax
jbe 0x673fb7
nop
push ebx
mov ecx, edi
call fcn.006716d0
mov edx, dword [ebp]
mov ecx, ebp
add ebx, 1
call dword [edx + 0xc]
cmp ebx, eax
jb 0x673fa0
push str.kingdoms
push 0
mov ecx, esi
mov dword [esp + 0x28], 0
call fcn.00402f30
push 0
mov ebx, eax
push str.count
push ebx
mov ecx, esi
call fcn.00403300
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 4]
mov eax, dword [ebp]
push 0
mov ecx, ebp
call dword [eax + 0x10]
push 0
push str.last
push ebx
mov ecx, esi
call fcn.00403300
push 0
push str.devlevel
push ebx
mov ecx, esi
mov word [edi + 0xc4], ax
call fcn.00403300
mov ecx, edi
mov byte [edi + 0x1f5], al
call fcn.00658a30
xor ebx, ebx
mov dword [esp + 0x1c], ebx
lea esp, [esp]
movzx eax, bx
push 0xa
lea ecx, [esp + 0x114]
push ecx
push eax
call fcn.00720ef9
add esp, 0xc
push eax
push 0
mov ecx, esi
call fcn.00402f30
mov ebp, eax
test ebp, ebp
jne 0x674070
mov edx, dword [edi + 0x1a8]
movzx eax, bx
lea ecx, [edi + 0x1a8]
push eax
call dword [edx + 0x14]
mov dword [eax], ebp
jmp 0x674850
push 0x408
call fcn.0040fa60
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0x1e0], 8
je 0x67409a
push 1
mov ecx, eax
call fcn.005f8d60
mov edi, eax
jmp 0x67409c
xor edi, edi
push str.name
push ebp
mov ecx, esi
mov byte [esp + 0x1e8], 5
mov word [edi + 0x20], bx
call fcn.00403230
push eax
lea ecx, [edi + 0x10]
call fcn.00413310
mov ecx, edi
call fcn.005f65c0
push 0
push str.capital
push ebp
mov ecx, esi
call fcn.00403300
push 0
push str.color1
push ebp
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.00403300
push 0
push str.color2
push ebp
mov ecx, esi
mov byte [edi + 0x124], al
call fcn.00403300
push 0
push str.ornament
push ebp
mov ecx, esi
mov byte [edi + 0x125], al
call fcn.00403300
push 0
push str.polit_color
push ebp
mov ecx, esi
mov byte [edi + 0x127], al
call fcn.00403300
push 0
push str.human
push ebp
mov ecx, esi
mov byte [edi + 0x128], al
call fcn.00403300
push 0
push str.team
push ebp
mov ecx, esi
mov byte [edi + 0x129], al
call fcn.00403300
push 0
push str.fame
push ebp
mov ecx, esi
mov byte [edi + 0x12a], al
call fcn.00403300
push 0
push str.king_h
push ebp
mov ecx, esi
mov dword [edi + 0x18c], eax
call fcn.00403300
push 0
push str.king_id
push ebp
mov ecx, esi
mov dword [edi + 0x198], eax
call fcn.00403300
push 0
push str.heir_id
push ebp
mov ecx, esi
mov dword [edi + 0x19c], eax
call fcn.00403300
push 0
push str.reputation
mov dword [edi + 0x1a0], eax
push ebp
mov ecx, esi
call fcn.00403300
push str.introsound
push ebp
mov ecx, esi
mov dword [edi + 0x1a4], eax
call fcn.00403230
push eax
lea ecx, [edi + 0x2c8]
call fcn.00413310
push 0xffffffffffffffff
push 0x7b1fb4
push ebp
mov ecx, esi
call fcn.00403230
push eax
lea ecx, [esp + 0x30]
call fcn.00413870
mov eax, dword [esp + 0x28]
test eax, eax
mov byte [esp + 0x1e0], 9
je 0x674295
xor ebx, ebx
cmp word [eax], bx
je 0x674295
mov dword [esp + 0x58], vtable.CBArray_long_int_.0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], ebx
lea eax, [esp + 0x58]
push eax
push 0x2c
lea ecx, [esp + 0x30]
mov byte [esp + 0x1e8], 0xa
call fcn.00413f20
mov edx, dword [esp + 0x58]
push ebx
lea ecx, [esp + 0x5c]
call dword [edx + 0x14]
cmp dword [esp + 0x68], 1
mov eax, dword [eax]
mov dword [edi + 0x294], eax
jbe 0x674274
mov edx, dword [esp + 0x58]
push 1
lea ecx, [esp + 0x5c]
call dword [edx + 0x14]
mov eax, dword [eax]
mov dword [edi + 0x298], eax
mov eax, dword [esp + 0x5c]
cmp eax, ebx
mov byte [esp + 0x1e0], 9
mov dword [esp + 0x58], vtable.CBArray_long_int_.0
je 0x674295
push eax
call fcn.0040fa80
add esp, 4
push str.title
push ebp
mov ecx, esi
lea ebx, [edi + 0x18]
call fcn.00403230
push eax
mov ecx, ebx
call fcn.00413310
push str.king_title
push ebp
mov ecx, esi
call fcn.00403230
push eax
lea ecx, [edi + 0x1a8]
call fcn.00413310
push str.queen_title
push ebp
mov ecx, esi
call fcn.00403230
push eax
lea ecx, [edi + 0x1b0]
call fcn.00413310
mov eax, dword [ebx]
test eax, eax
je 0x674314
cmp word [eax], 0
je 0x674314
test eax, eax
je 0x674314
push 0x7c5dd8
push eax
call fcn.0071f59b
add esp, 8
neg eax
sbb eax, eax
add eax, 1
test al, al
je 0x674314
push 0x7ee39c
mov ecx, ebx
call fcn.00413360
movzx eax, word [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 0x1a8]
add ebx, 0x1a8
push eax
mov ecx, ebx
call dword [edx + 0x14]
push str.relations
push 0
mov ecx, esi
mov dword [eax], edi
call fcn.00402f30
test eax, eax
mov dword [esp + 0x10], eax
je 0x67454d
push 0
push str.count
push eax
mov ecx, esi
call fcn.00403300
mov ecx, dword [esp + 0x10]
push 0
push str.last
push ecx
mov ecx, esi
call fcn.00403300
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x24]
test eax, eax
mov dword [esp + 0x50], eax
je 0x67454d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1a8]
add ecx, 0x1a8
lea edx, [esp + 0x50]
push edx
call dword [eax + 0x2c]
mov ebx, dword [eax]
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x674542
cmp edi, ebx
je 0x674542
mov ax, word [edi + 0x20]
test ax, ax
mov cx, word [ebx + 0x20]
je 0x67440d
test cx, cx
je 0x67440d
mov edx, dword [esp + 0x14]
mov dx, word [edx + 0xc4]
cmp ax, dx
mov dword [esp + 0x10], edx
ja 0x67441f
cmp cx, dx
ja 0x67441f
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xdc], 0
je 0x67441f
movzx edx, word [esp + 0x10]
movzx ebx, ax
imul ebx, edx
movzx edx, cx
add ebx, edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0xdc]
mov edx, dword [edx + ebx*4]
test edx, edx
mov ebx, dword [esp + 0x18]
je 0x67441f
jmp 0x674417
mov edx, dword [esp + 0x14]
add edx, 0xe0
test edx, edx
jne 0x674542
movzx eax, ax
push eax
movzx ecx, cx
push ecx
lea edx, [esp + 0x128]
push 0x77fbb0
push edx
call fcn.0071f52c
add esp, 0x10
lea eax, [esp + 0x120]
push eax
push 0
mov ecx, esi
call fcn.00402f30
test eax, eax
mov dword [esp + 0x10], eax
jne 0x674491
movzx ecx, word [ebx + 0x20]
movzx edx, word [edi + 0x20]
push ecx
push edx
lea eax, [esp + 0x128]
push 0x77fbb0
push eax
call fcn.0071f52c
add esp, 0x10
lea ecx, [esp + 0x120]
push ecx
push 0
mov ecx, esi
call fcn.00402f30
test eax, eax
mov dword [esp + 0x10], eax
je 0x674542
push 0x70
call fcn.0040fa60
add esp, 4
mov dword [esp + 0xb0], eax
test eax, eax
mov byte [esp + 0x1e0], 0xb
je 0x6744bb
push 1
mov ecx, eax
call fcn.006666b0
mov ebx, eax
jmp 0x6744bd
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov edx, dword [ebx]
push eax
push edi
mov ecx, ebx
mov byte [esp + 0x1e8], 9
call dword [edx + 0xc]
mov ecx, dword [esp + 0x10]
push 0
push str.state
push ecx
mov ecx, esi
call fcn.00403300
mov edx, dword [esp + 0x10]
push 0
push str.relation
push edx
mov ecx, esi
mov dword [ebx + 0x10], eax
call fcn.00403300
push 0
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x14]
push str.trade
push eax
mov ecx, esi
call fcn.00403300
mov ecx, dword [esp + 0x10]
push 0
push str.borders
push ecx
mov ecx, esi
mov byte [ebx + 0x2c], al
call fcn.00403300
mov ecx, dword [esp + 0x14]
movzx edx, ax
add dword [esp + 0x20], edx
add ecx, 0xc8
mov word [ebx + 0x36], ax
mov eax, dword [ecx]
push ebx
call dword [eax + 8]
cmp dword [esp + 0x50], 0
jne 0x674380
mov ebx, dword [esp + 0x14]
push 0xffffffffffffffff
push str.realms
push ebp
mov ecx, esi
call fcn.00403230
push eax
lea ecx, [esp + 0x74]
call fcn.00413870
mov eax, dword [esp + 0x6c]
xor ebp, ebp
cmp eax, ebp
mov byte [esp + 0x1e0], 0xc
je 0x6747c5
cmp word [eax], bp
je 0x6747c5
mov dword [esp + 0x74], vtable.CBArray_class_CBStr_.0
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], 1
mov dword [esp + 0x84], ebp
lea ecx, [esp + 0x74]
push ecx
push 0x3b
lea ecx, [esp + 0x74]
mov byte [esp + 0x1e8], 0xd
call fcn.00413d40
xor eax, eax
cmp dword [esp + 0x84], ebp
mov dword [esp + 0x10], eax
jbe 0x674790
mov edx, dword [esp + 0x74]
push eax
lea ecx, [esp + 0x78]
call dword [edx + 0x14]
mov ecx, eax
call fcn.00412d50
test ax, ax
je 0x674774
movzx edx, ax
cmp edx, dword [ebx + 0x60]
jae 0x674608
mov eax, dword [ebx + 0x24]
lea ecx, [ebx + 0x24]
push edx
call dword [eax + 0x14]
mov ebx, dword [eax]
jmp 0x674615
cmp ax, 0xffff
jne 0x674774
mov ebx, dword [ebx + 0x6c]
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x674774
mov edx, dword [ebx + 0x64]
mov eax, edx
shr eax, 0x18
sub eax, 0
mov word [ebx + 0x2a], 0
je 0x67465e
sub eax, 1
je 0x674650
sub eax, 1
jne 0x67474b
mov ecx, dword [0x912e94]
mov ecx, dword [ecx + 0x2e4]
jmp 0x67466a
mov ecx, dword [0x912e94]
mov ecx, dword [ecx + 0x2e0]
jmp 0x67466a
mov ecx, dword [0x912e94]
mov ecx, dword [ecx + 0x2dc]
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
test eax, eax
je 0x67474b
add eax, 0xffffffe8
je 0x67474b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x50]
mov ebp, eax
test ebp, ebp
je 0x67474b
mov cx, word [edi + 0x20]
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0xe4]
mov edx, dword [ebp + 0x158]
lea ebx, [ebp + 0x158]
mov ecx, ebx
call dword [edx + 0x2c]
test eax, eax
mov dword [esp + 0x4c], eax
je 0x674759
nop
mov eax, dword [ebx]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, ebx
call dword [eax + 0x34]
mov edx, dword [eax]
mov eax, edx
shr eax, 0x18
sub eax, 0
je 0x6746fd
sub eax, 1
je 0x6746ef
sub eax, 1
jne 0x67473e
mov eax, dword [0x912e94]
mov ecx, dword [eax + 0x2e4]
jmp 0x674709
mov ecx, dword [0x912e94]
mov ecx, dword [ecx + 0x2e0]
jmp 0x674709
mov ecx, dword [0x912e94]
mov ecx, dword [ecx + 0x2dc]
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
test eax, eax
je 0x67473e
lea ecx, [eax - 0x18]
test ecx, ecx
je 0x67473e
mov edx, dword [ecx]
call dword [edx + 0x24]
mov ebp, eax
test ebp, ebp
je 0x67473e
mov cx, word [edi + 0x20]
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0xe4]
push 0
mov ecx, ebp
call fcn.0055d8e0
cmp dword [esp + 0x4c], 0
jne 0x6746c0
jmp 0x674759
mov dx, word [edi + 0x20]
push 0
mov ecx, ebx
push edx
call fcn.0066f3b0
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x194], 4
jne 0x674774
mov ecx, dword [edi + 0x294]
push ecx
mov ecx, eax
call fcn.0065c6d0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
add eax, 1
cmp eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
jb 0x6745d6
mov eax, dword [esp + 0x78]
test eax, eax
mov byte [esp + 0x1e0], 0xc
mov dword [esp + 0x74], vtable.CBArray_class_CBStr_.0
je 0x6747c5
mov edx, dword [eax - 4]
lea ebp, [eax - 4]
push fcn.00412de0
push edx
push 8
push eax
call fcn.0071f0d2
push ebp
call fcn.0040fa80
add esp, 4
mov eax, dword [edi + 0x24]
lea ecx, [edi + 0x24]
call dword [eax + 0x48]
test eax, eax
jne 0x6747db
mov byte [edi + 0x12c], 1
jmp 0x674826
mov ebp, dword [esp + 0x24]
movzx eax, bp
cmp eax, dword [ebx + 0x60]
jae 0x6747f5
mov edx, dword [ebx + 0x24]
lea ecx, [ebx + 0x24]
push eax
call dword [edx + 0x14]
mov ebx, dword [eax]
jmp 0x6747ff
cmp bp, 0xffff
jne 0x67480d
mov ebx, dword [ebx + 0x6c]
test ebx, ebx
je 0x67480d
mov ax, word [ebx + 0x2a]
cmp ax, word [edi + 0x20]
je 0x674819
mov edx, dword [edi + 0x24]
lea ecx, [edi + 0x24]
call dword [edx + 0x40]
mov bp, word [eax]
test bp, bp
je 0x674826
mov eax, dword [edi]
push ebp
mov ecx, edi
call dword [eax + 0x28]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1e0], 9
call fcn.00412de0
lea ecx, [esp + 0x28]
mov byte [esp + 0x1e0], 5
call fcn.00412de0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, 1
cmp bx, word [edi + 0xc4]
mov dword [esp + 0x1c], ebx
jbe 0x674030
push esi
call fcn.00403650
mov eax, dword [esp + 0x1ec]
add esp, 4
test eax, eax
jne 0x67487d
mov eax, 0x77f5d4
lea esi, [edi + 0x1f8]
push eax
mov ecx, esi
call fcn.00413310
mov ecx, edi
call fcn.00658a30
mov ecx, dword [0x912e94]
cmp dword [ecx + 0xc], 0
je 0x6748ac
cmp dword [esp + 0x20], 0
jne 0x6748ac
mov ecx, edi
call fcn.0066cc40
mov ecx, edi
call fcn.00666dc0
lea ecx, [esp + 0xc8]
call fcn.004049b0
push str.map_vassals.ini
lea ecx, [esp + 0xcc]
mov byte [esp + 0x1e4], 0xe
call fcn.00403a50
test eax, eax
jne 0x6749b8
push str._vassal_of
lea edx, [esp + 0x2c]
push esi
push edx
call fcn.00413ad0
add esp, 0xc
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0xcc]
mov byte [esp + 0x1e4], 0xf
call fcn.00402f10
test eax, eax
je 0x6749a7
push eax
lea ecx, [esp + 0xcc]
call fcn.004030f0
mov ebp, eax
test ebp, ebp
je 0x6749a7
mov ebx, 3
push ebp
lea ecx, [esp + 0xcc]
call fcn.00402f50
push eax
mov ecx, edi
call fcn.00658920
mov esi, eax
test esi, esi
je 0x674994
push ebp
lea ecx, [esp + 0xcc]
call fcn.00405410
test eax, eax
je 0x674994
push eax
mov ecx, edi
call fcn.00658920
test eax, eax
je 0x674994
mov cx, word [eax + 0x20]
mov word [esi + 0x2b8], cx
mov dx, word [eax + 0x20]
mov ax, word [esi + 0x20]
mov ecx, edi
push edx
push eax
call fcn.00658990
test eax, eax
je 0x674994
cmp dword [eax + 0x10], ebx
jne 0x674994
mov dword [eax + 0x10], 0
push ebp
lea ecx, [esp + 0xcc]
call fcn.00403110
mov ebp, eax
test ebp, ebp
jne 0x674930
lea ecx, [esp + 0x28]
mov byte [esp + 0x1e0], 0xe
call fcn.00412de0
mov ecx, dword [0x912e94]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x6749ed
mov esi, dword [esp + 0x54]
test esi, esi
mov dword [eax + 0xfc], esi
je 0x6749ed
push 0xe0
push 0
mov ecx, esi
call fcn.004fd4a0
push 0xff
mov ecx, esi
call fcn.00500680
lea ecx, [esp + 0xc8]
mov byte [esp + 0x1e0], 5
call fcn.004049f0
lea ecx, [esp + 0x44]
mov byte [esp + 0x1e0], 4
call fcn.00412de0
mov dword [esp + 0x30], vtable.CBSList_unsigned_short_int_.0
mov eax, dword [esp + 0x38]
test eax, eax
mov byte [esp + 0x1e0], 0x10
je 0x674a4b
lea ebx, [ebx]
mov edx, dword [eax + 4]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x34]
mov dword [esp + 0x3c], edx
call dword [eax + 0x64]
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x674a30
xor eax, eax
lea ecx, [esp + 0x160]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], vtable.CBList_unsigned_short_int_.0
mov dword [esp + 0x1e0], 0xffffffff
call fcn.00616d60
mov eax, 1
mov ecx, dword [esp + 0x1d8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1d4
ret 4