Function at 0x40208c
Capabilities:
Authenticate hmac
Encode data using base64
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
pop eax
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0xc]
mov ecx, esp
and dword [ecx + 4], 0
and dword [ecx], 0
push 0
push ecx
push 0
push edx
mov dword [esp + 0x20], eax
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x40202a
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor edi, edi
test ebx, ebx
je 0x40205f
mov edx, dword [esp + 0x10]
mov ecx, esp
push ebx
push esi
call fcn.0041fe70
pop eax
pop ecx
movzx eax, byte [esp]
cmp eax, 4
jne 0x401fff
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x40204c
mov eax, ebx
sub eax, ecx
jb 0x40206e
add esi, ecx
mov ebx, eax
jmp 0x401fcb
mov eax, dword [eax*4 + 0x40207c]
add eax, dword [esp + 0xc]
jmp eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
xor ecx, ecx
jmp 0x402058
xor eax, eax
mov edx, 0x46f154
push 2
pop ecx
or ecx, eax
call fcn.004011f8
mov edi, eax
mov eax, edi
mov edx, 0x45b4a8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, ebx
push 0x45b4d4
call fcn.004586a0
nop
cdq
add byte [eax], al
add byte [ebx], bh
add byte [eax], al
outsd dx, dword [esi]
add byte [eax], al
add byte [edi], ch
add byte [eax], al
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x278
mov esi, esp
mov dword [esi + 0x260], ebp
lea edx, [esi + 0x268]
lea edi, [esi + 0x60]
call 0x4020b1
pop eax
mov dword [edx - 4], esp
or dword [edx + 8], 0xffffffff
mov dword [edx + 4], 0x4494e0
xor ebx, ebx
mov dword [esi + 0x22c], eax
mov ecx, dword fs:[0]
inc ebx
mov dword [edx], ecx
mov ecx, 0x4945c8
mov dword fs:[0], edx
mov dword [edi], str._Stronghold_2_Ultimate_Multiplayer_AI_Patch__n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], ecx
and dword [edi + 0xc], 0
mov ecx, edi
call fcn.0042a770
lea eax, [esi + 0x14c]
mov dword [edi], str.Version_v0.1.0__built_2024_04_15T13:45:34.46545470000:00__n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str.By_William_Venner__william_venner.io__n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str.https:__github.com_WilliamVenner_stronghold2_ultimate_multiplayer_ai_patch_n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x45bdf0
mov ecx, 0x4945c8
mov dword [edi], eax
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], ecx
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str.This_program_permanently_patches_Stronghold_2__Steam_Edition__v1.5__to:_n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str._Enable_adding_AI_players_in_multiplayer_Kingmaker_mode_n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str._Enable_AI_player_sieges_in_multiplayer_Kingmaker_mode_n
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x4945c8
mov dword [edi], str.__Optional__Allow_players_and_AI_to_build_Siege_Camps_outside_their_estate_nE
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], eax
and dword [edi + 0xc], 0
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.0042a770
mov eax, 0x45bdf0
mov ecx, 0x4945c8
mov dword [edi], eax
mov dword [edi + 4], ebx
and dword [edi + 0x10], 0
mov dword [edi + 8], ecx
and dword [edi + 0xc], 0
lea ecx, [esi + 0x60]
call fcn.0042a770
xor ebx, ebx
mov dword [esi + 4], 0x2faf080
mov dword [esi + 8], 0
mov al, byte [0x49f0b8]
xor edx, edx
inc edx
test al, al
movzx ecx, al
cmove ecx, edx
lock cmpxchg byte [0x49f0b8], cl
jne 0x40224d
cmp al, 1
jne 0x40240e
mov eax, ebx
or eax, dword [esi + 8]
jne 0x402278
cmp dword [esi + 4], 0
je 0x40231c
push 0x1f0003
push 2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerExW]
test eax, eax
je 0x40231c
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
mov edi, 0x989680
mul edi
mov ecx, eax
mov eax, ebx
seto byte [esi + 0x10]
mul edi
mov edi, edx
mov dword [esi + 0x18], eax
add edi, ecx
setb al
or al, byte [esi + 0x10]
jne 0x402312
mov eax, dword [esi + 4]
xor edx, edx
push 0x64
pop ecx
div ecx
add dword [esi + 0x18], eax
adc edi, 0
jb 0x402312
js 0x402312
mov ecx, dword [esi + 0x18]
mov eax, 0
neg ecx
sbb eax, edi
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], eax
push 0
push 0
push 0
push 0
lea eax, [esi + 0x60]
push eax
mov edi, dword [esi + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_SetWaitableTimer]
test eax, eax
je 0x402315
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, edi
mov edi, eax
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, 0xffffffff
jne 0x40237e
jmp 0x40231c
mov edi, dword [esi + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 8]
mov edi, 0x3e8
mul edi
mov ecx, eax
mov eax, ebx
seto byte [esi + 0xc]
mul edi
mov edi, edx
mov dword [esi + 0x10], eax
add edi, ecx
setb al
or al, byte [esi + 0xc]
jne 0x402374
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 0xf4240
div ecx
add dword [esi + 0x10], eax
adc edi, 0
jb 0x402374
xor eax, eax
test edx, edx
setne al
add dword [esi + 0x10], eax
mov eax, 0
adc edi, 0
setb cl
neg edi
sbb eax, eax
test cl, cl
je 0x402406
xor eax, eax
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 4]
xor edx, edx
lea ecx, [eax + eax]
mov edi, eax
mov dword [esi + 0xc], ecx
mov ecx, 0x1dcd6500
shr edi, 0x1f
div ecx
mov dword [esi + 4], eax
push 0
mov eax, 0x3b9aca00
push eax
push edi
push dword [esi + 0xc]
call fcn.00449fc0
mov edx, dword [esi + 8]
mov ecx, eax
mov edi, 0x3b9aca00
mov eax, edx
shld eax, ebx, 1
add ebx, ebx
add ebx, dword [esi + 4]
mov dword [esi + 4], ecx
adc eax, 0
cmovb ecx, edi
test edx, edx
js 0x40617b
cmp ecx, 0x3b9aca00
je 0x40617b
cmp ebx, 2
mov edx, eax
sbb edx, 0
jb 0x4023f2
mov edx, ebx
xor edx, 2
or edx, eax
jne 0x4023fe
test ecx, ecx
jne 0x4023fe
mov dword [esi + 4], 0
push 2
pop ebx
xor eax, eax
mov dword [esi + 8], eax
jmp 0x402245
or eax, dword [esi + 0x10]
jmp 0x402377
movzx eax, al
test eax, eax
je 0x402429
cmp eax, 2
jne 0x406194
mov dl, byte [0x49f0b9]
jmp 0x4024e6
or dword [esi + 0x270], 0xffffffff
lea ebx, [esi + 0x60]
mov edx, 0x471748
mov ecx, ebx
push 4
call fcn.00440ada
pop eax
mov dword [esi + 0xb4], 0x8000000
lea edi, [esi + 0xe0]
push 0x68
push ebx
push edi
call fcn.0044ac50
add esp, 0xc
push 2
pop ebx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440b65
pop ecx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440bc7
pop ecx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440b95
pop ecx
and dword [esi + 0x270], 0
lea ecx, [esi + 0x1a8]
mov edx, edi
call fcn.004360e0
mov bl, byte [esi + 0x1a8]
cmp bl, 4
je 0x4024c5
lea ecx, [esi + 0x1a8]
call fcn.004410ec
test al, al
je 0x40293e
mov edx, dword [esi + 0x1ac]
movzx ecx, bl
call fcn.00439df7
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0xe0]
call fcn.00440fdc
xor edx, edx
mov byte [0x49f0b9], dl
mov byte [0x49f0b8], 2
cmp dl, 3
jne 0x40251a
push 0x5d
pop edi
mov eax, dword [esi + 0x150]
mov ecx, dword [esi + 0x154]
mov dword [esi + 0x270], 0x14
mov ebx, 0x80000000
mov dword [esi + 0x180], ecx
mov dword [esi + 0x17c], eax
jmp 0x40303d
or dword [esi + 0x270], 0xffffffff
mov dword [esi + 0x10], edx
push 0x5d
pop ecx
call fcn.00441780
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], edx
mov eax, 0x45bb7c
lea ecx, [esi + 0xe8]
lea edx, [0x45bbd9]
and dword [esi + 0x158], 0
and dword [esi + 0x15c], 0
and dword [esi + 0x160], 0
and dword [esi + 0x168], 0
mov byte [esi + 0x170], 0
mov dword [ecx - 8], eax
mov dword [ecx - 4], 0x5d
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
mov ebx, dword [esi + 0xe8]
mov edi, dword [esi + 0xec]
lea ecx, [esi + 0xe8]
call fcn.00417769
cmp edx, 0x110000
je 0x4025c1
cmp edx, 0x21
jb 0x40257f
mov edx, dword [esi + 0xe8]
mov ecx, dword [esi + 0xec]
mov dword [esi + 4], eax
sub edi, ebx
add eax, edx
add eax, edi
sub eax, ecx
mov dword [esi + 0xc], eax
mov eax, edx
jmp 0x4025db
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xec]
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], ecx
lea ecx, [esi + 0xe8]
mov ebx, eax
call fcn.00442231
test eax, eax
je 0x402617
cmp edx, 0x110000
je 0x402617
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xec]
cmp edx, 0x21
jb 0x4025db
add ebx, ecx
add ecx, dword [esi + 0xf0]
add ecx, dword [esi + 8]
sub ecx, ebx
jmp 0x40261a
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 4]
lea ebx, [ecx + 0x45bb7c]
mov edx, ebx
lea edi, [eax + 0x45bb7c]
mov ecx, edi
mov dword [esi + 0x1a8], edi
mov dword [esi + 0x1ac], ebx
call fcn.00448d3d
test al, al
je 0x4026af
mov eax, dword [esi + 0x15c]
test eax, eax
mov dword [esi + 8], eax
je 0x40274c
lea edx, [esi + 0xe0]
mov dword [edx], edi
mov dword [edx + 4], ebx
push 0x23
pop ecx
call fcn.00448530
test al, al
mov dword [esi + 0x270], 4
je 0x402753
lea eax, [esi + 0x150]
push 0x24
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1f], 0
lea ecx, [esi + 0x60]
lea edx, [esi + 0xe0]
push ebx
push edi
push dword [esi + 8]
call fcn.0044854b
add esp, 0xc
jmp 0x403016
lea ecx, [esi + 0xe0]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
call fcn.004423fc
cmp eax, 0x110000
je 0x402642
and eax, 0x1fffdf
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x402642
lea ecx, [esi + 0x1a8]
mov dword [esi + 0xc], ebx
mov dword [esi + 4], edi
call fcn.004423fc
cmp eax, 0x110000
je 0x4027f3
lea edx, [eax - 0x61]
lea ecx, [eax - 0x41]
cmp edx, 0x1a
jb 0x402720
cmp ecx, 0x1a
jb 0x402720
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x402720
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x402720
cmp eax, 0x2b
jne 0x402a33
mov edx, eax
mov byte [esi + 0x1f], 1
mov dword [esi + 0x270], 4
xor edx, 0x20
cmp ecx, 0x1a
lea ecx, [esi + 0x150]
cmovae edx, eax
call fcn.00410ceb
lea ecx, [esi + 0x1a8]
jmp 0x4026e7
mov bl, 6
jmp 0x4027dd
mov edx, dword [esi + 8]
mov dword [esi + 0xc], ebx
mov dword [esi + 4], edi
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov byte [esi + 0x1f], 1
inc eax
push eax
call fcn.004489cc
pop ecx
mov byte [esi + 0x1f], 1
mov ecx, eax
push 0x2f
call fcn.0040f488
pop ecx
mov bl, 7
test al, al
je 0x4027dd
mov ecx, dword [esi + 8]
mov byte [esi + 0x1f], 1
call fcn.0044593c
mov ecx, eax
call fcn.00448698
test al, al
je 0x402a4e
mov ebx, eax
lea eax, [esi + 0x150]
push 0x24
push eax
lea edi, [esi + 0xe0]
push edi
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1f], 0
movzx eax, bl
lea ecx, [esi + 0x60]
mov edx, edi
push dword [esi + 8]
push eax
push dword [esi + 0xc]
push dword [esi + 4]
call fcn.00447e90
add esp, 0x10
jmp 0x403016
mov ecx, dword [esi + 0x150]
mov edx, dword [esi + 0x154]
call fcn.00411da6
jmp 0x403023
cmp byte [esi + 0x170], 1
jne 0x402a3c
mov eax, dword [esi + 0x1a8]
lea ebx, [esi + 0x34]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x1ac]
mov dword [esi + 0xc], eax
push 0x24
lea eax, [esi + 0x150]
push eax
push ebx
call fcn.0044ac50
add esp, 0xc
mov edi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov ecx, edi
mov edx, ebx
push 4
push 0x494a2b
call fcn.0041df36
pop ecx
pop edx
test al, al
mov byte [esi + 8], 1
jne 0x4028c2
mov ecx, edi
mov edx, ebx
push 5
push 0x494a2f
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4028c2
mov ecx, edi
mov edx, ebx
push 2
push 0x494a34
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4028c2
mov ecx, edi
mov edx, ebx
push 3
push 0x494a36
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4028c2
mov ecx, edi
mov edx, ebx
push 3
push str.ftphttphttpswswssfile:__C:Users_runneradmin.cargo_registry_srcindex.crates.io_1cd66030c949c28durl_2.5.0_srcparser.rs
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4028c2
mov ecx, edi
mov edx, ebx
push 4
push 0x494a39
call fcn.0041df36
pop ecx
pop edx
xor al, 1
mov dword [esi + 0x270], 5
add al, al
mov byte [esi + 8], al
mov byte [esi + 0x1e], 1
mov dword [esi + 0x270], 5
lea ecx, [esi + 0x34]
push 0x3a
pop edx
mov dword [esi + 0x20], ebx
call fcn.00410ceb
mov ebx, dword [esi + 0x20]
mov cl, byte [esi + 8]
movzx eax, cl
cmp cl, 2
mov dword [esi + 0x30], eax
je 0x402b2c
cmp eax, 1
jne 0x402b9d
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
xor edi, edi
mov dword [esi + 0xe0], eax
mov dword [esi + 4], ecx
mov dword [esi + 0xe4], ecx
lea ecx, [esi + 0xe0]
mov dword [esi + 8], eax
call fcn.004423fc
cmp eax, 0x5c
je 0x40292f
cmp eax, 0x2f
jne 0x402a87
mov eax, dword [esi + 0xe0]
mov ecx, dword [esi + 0xe4]
inc edi
jmp 0x402904
mov ecx, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
call fcn.00439df7
or dword [esi + 0x270], 0xffffffff
lea ebx, [esi + 0xe0]
mov ecx, ebx
call fcn.00440fdc
lea edi, [esi + 0x60]
mov edx, str.powershell_help_command_n_t_t_t_t_ErrorActionPreference___Stop__n_t_t_t_t_System.Net.ServicePointManager_::MaxServicePointIdleTime____n_t_t_t_t_data___Invoke_WebRequest__TimeoutSec___.Content__n_t_t_t_t_Writer__New_Object_System.IO.BinaryWriter__console_::OpenStandardOutput_____n_t_t_t_t_Writer.Write__data__0___data.length__n_t_t_t_t_Writer.Flush___n_t_t_t_t_Writer.Close___n_t_t_t
mov ecx, edi
push 0xa
call fcn.00440ada
pop eax
mov dword [esi + 0xb4], 0x8000000
push 0x68
push edi
push ebx
call fcn.0044ac50
add esp, 0xc
mov dword [esi + 0x270], 1
mov ecx, ebx
mov edx, 0x47178a
push 5
call fcn.00438ed0
pop eax
push 0x68
lea eax, [esi + 0xe0]
push eax
lea ebx, [esi + 0x1a8]
push ebx
call fcn.0044ac50
add esp, 0xc
push 2
pop edi
mov ecx, ebx
mov edx, edi
push 0
call fcn.00440b65
pop ecx
mov ecx, ebx
mov edx, edi
push 0
call fcn.00440bc7
pop ecx
mov ecx, ebx
mov edx, edi
push 0
call fcn.00440b95
pop ecx
lea ecx, [esi + 0x34]
mov edx, ebx
mov dword [esi + 0x270], 2
call fcn.004360e0
mov bl, byte [esi + 0x34]
cmp bl, 4
je 0x402a1a
lea ecx, [esi + 0x34]
call fcn.004410ec
test al, al
je 0x402c00
mov edx, dword [esi + 0x38]
movzx ecx, bl
call fcn.00439df7
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0x1a8]
call fcn.00440fdc
mov dl, 1
jmp 0x4024d9
cmp eax, 0x3a
je 0x402800
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
and dword [esi + 0x158], 0
jmp 0x402642
lea eax, [esi + 0x150]
push 0x24
push eax
lea edi, [esi + 0xe0]
push edi
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1f], 0
lea ecx, [esi + 0x60]
mov edx, edi
push dword [esi + 8]
push 0
push dword [esi + 0xc]
push dword [esi + 4]
call fcn.00447259
add esp, 0x10
jmp 0x403016
cmp edi, 1
ja 0x402cb7
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x402cb7
mov byte [esi + 0x1e], 1
mov dword [esi + 0x270], 5
mov dword [esi + 0x2c], ecx
call fcn.0044593c
mov edi, dword [esi + 0x20]
mov dword [esi + 0x58], eax
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
mov byte [esi + 0x1e], 1
push 0x494ab4
push edi
call fcn.00447e62
mov ebx, dword [esi + 0x20]
add esp, 8
mov ecx, dword [esi + 0x58]
mov edi, edx
mov edx, dword [esi + 0x28]
push edi
push eax
call fcn.0043fe32
pop ecx
pop edx
mov ecx, dword [esi + 0x2c]
test al, al
je 0x402cb7
and dword [esi + 0x3c], 0
push 0x24
lea eax, [esi + 0x34]
push eax
lea edi, [esi + 0xe0]
push edi
mov ebx, ecx
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1e], 0
lea ecx, [esi + 0x60]
mov edx, edi
push ebx
push dword [esi + 0x30]
push dword [esi + 0xc]
push dword [esi + 0x18]
call fcn.00447e90
add esp, 0x10
jmp 0x403016
push 0x24
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0x1a8]
push eax
call fcn.0044ac50
add esp, 0xc
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0xc]
mov ecx, ebx
mov edx, edi
call fcn.00445988
test eax, eax
je 0x402dde
push 0x24
lea ecx, [esi + 0x34]
push ecx
mov edi, eax
lea eax, [esi + 0xe0]
push eax
mov ebx, edx
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x27], 0
mov dword [esi + 0x270], 7
lea ecx, [esi + 0x60]
lea edx, [esi + 0xe0]
push dword [esi + 0x20]
push dword [esi + 0x30]
push ebx
push edi
call fcn.004459b5
add esp, 0x10
jmp 0x403016
mov edi, dword [esi + 0x4c]
test edi, edi
je 0x402bcc
mov ebx, dword [esi + 0x50]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0xc]
push 2
push 0x494ac4
call fcn.00445964
pop ecx
pop edx
test al, al
jne 0x402bcc
mov byte [esi + 0x1e], 1
push 4
push edi
call dword [ebx + 0x14]
add esp, 8
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x402e5a
mov byte [esi + 0x1e], 1
mov dword [esi + 8], ecx
call fcn.0044593c
mov ecx, eax
push 4
push 0x494a39
call fcn.0043fe32
pop ecx
pop edx
xor edi, edi
test al, al
cmovne edi, dword [esi + 8]
jmp 0x402e5c
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
call fcn.00439df7
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0x1a8]
call fcn.00440fdc
lea ebx, [esi + 0x60]
mov edx, str.curlwget__timeout
mov ecx, ebx
push 4
call fcn.00440ada
pop eax
lea eax, [esi + 0x60]
mov dword [eax + 0x54], 0x8000000
push 0x68
push ebx
lea edi, [esi + 0xe0]
push edi
call fcn.0044ac50
add esp, 0xc
push 2
pop ebx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440b65
pop ecx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440bc7
pop ecx
mov ecx, edi
mov edx, ebx
push 0
call fcn.00440b95
pop ecx
lea ecx, [esi + 0x60]
mov edx, edi
mov dword [esi + 0x270], 3
call fcn.004360e0
mov bl, byte [esi + 0x60]
mov al, 2
mov dword [esi + 0x10], eax
cmp bl, 4
je 0x402ea5
lea ecx, [esi + 0x60]
call fcn.004410ec
test al, al
je 0x402e95
mov edx, dword [esi + 0x64]
movzx ecx, bl
call fcn.00439df7
jmp 0x402ea5
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x402d9f
mov ecx, dword [esi + 0x50]
xor edx, edx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x270], 6
mov dword [esi + 0x58], ecx
lea ecx, [esi + 0x1a8]
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
call fcn.00441737
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0xe0]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov byte [ecx + 8], 0
lea ecx, [esi + 0xe0]
call fcn.004423fc
cmp eax, 0x2f
je 0x402d2a
cmp eax, 0x5c
je 0x402d2a
cmp eax, 0x110000
je 0x402d51
mov byte [esi + 0xe8], 1
jmp 0x402d47
lea ecx, [esi + 0x1a8]
mov edx, eax
mov dword [esi + 0x270], 6
mov dword [esi + 0xc], eax
call fcn.00410ceb
mov eax, dword [esi + 0xc]
cmp eax, 0x2f
je 0x402d05
cmp eax, 0x5c
je 0x402d05
mov ebx, dword [esi + 0x1ac]
mov edx, dword [esi + 0x1b0]
mov edi, dword [esi + 0x1a8]
mov ecx, ebx
call fcn.00447e51
mov ecx, edi
mov edx, ebx
mov byte [esi + 0xc], al
call fcn.00411da6
cmp byte [esi + 0xc], 0
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x270], 5
je 0x402d9f
mov byte [esi + 0x1e], 1
push 3
push eax
mov eax, dword [esi + 0x58]
call dword [eax + 0x14]
mov ebx, dword [esi + 0x20]
add esp, 8
push 0x24
lea eax, [esi + 0x34]
push eax
lea edi, [esi + 0xe0]
push edi
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1e], 0
mov dword [esi + 0x270], 5
lea ecx, [esi + 0x60]
mov edx, edi
push ebx
push dword [esi + 0x30]
push dword [esi + 4]
push dword [esi + 8]
call fcn.004459b5
add esp, 0x10
jmp 0x403016
mov eax, dword [esi + 0x1b0]
mov edx, edi
mov byte [esi + 0x190], 0
mov ecx, ebx
mov dword [esi + 0x2c], eax
push 0x2f
call fcn.004466cb
pop ecx
test eax, eax
je 0x402ebf
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov byte [esi + 0x27], 1
mov dword [esi + 0x270], 7
lea ecx, [esi + 0x1a8]
push 0x2f
pop edx
call fcn.00410ceb
mov edx, dword [esi + 0x30]
mov byte [esi + 0xe0], 0
mov byte [esi + 0x27], 1
lea ecx, [esi + 0x1a8]
push dword [esi + 4]
push dword [esi + 8]
push dword [esi + 0x2c]
lea eax, [esi + 0xe0]
push eax
call fcn.004466f6
add esp, 0x10
mov dword [esi + 0xc], edx
mov ebx, eax
jmp 0x402fb0
xor edi, edi
and dword [esi + 0x3c], 0
push 0x24
lea eax, [esi + 0x34]
push eax
lea ebx, [esi + 0xe0]
push ebx
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x1e], 0
lea ecx, [esi + 0x60]
mov edx, ebx
push edi
push dword [esi + 0x30]
push dword [esi + 0xc]
push dword [esi + 0x18]
call fcn.00447259
add esp, 0x10
jmp 0x403016
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
mov al, 3
mov dword [esi + 0x10], eax
call fcn.00439df7
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0xe0]
call fcn.00440fdc
mov edx, dword [esi + 0x10]
jmp 0x4024d9
lea eax, [esi + 0x188]
mov dword [eax], ebx
mov dword [eax + 4], edi
lea ecx, [esi + 0x210]
lea edx, [esi + 0x188]
mov byte [esi + 0x27], 1
mov dword [esi + 0x270], 7
call fcn.004487c2
mov eax, dword [esi + 0x210]
cmp eax, 0x23
je 0x402f19
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
cmp eax, 0x3f
je 0x402f0b
cmp eax, 0x110000
jne 0x402f2c
jmp 0x402fa1
cmp byte [esi + 0x1c8], 0
jne 0x402f2c
jmp 0x402fad
cmp byte [esi + 0x1c8], 0
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
je 0x402fad
mov ecx, dword [esi + 0x214]
mov ebx, dword [esi + 0x18c]
mov edx, dword [esi + 0x1c4]
mov edi, dword [esi + 0x188]
mov byte [esi + 0x27], 1
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x218]
mov dword [esi + 0xc], ebx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x1c0]
push ebx
mov dword [esi + 0x18], edi
push edi
push eax
call fcn.00448848
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
lea edx, [esi + 0xe0]
mov byte [esi + 0x27], 1
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], ecx
lea ecx, [esi + 0x1a8]
mov dword [esi + 0xe8], 0x49495c
call fcn.00417322
jmp 0x402eca
mov ebx, dword [esi + 0x188]
mov ecx, dword [esi + 0x18c]
mov dword [esi + 0xc], ecx
push 0x24
lea eax, [esi + 0x1a8]
push eax
lea edi, [esi + 0xe0]
push edi
call fcn.0044ac50
add esp, 0xc
mov byte [esi + 0x27], 0
sub esp, 0x2c
mov ecx, dword [esi + 0x2c]
lea edx, [esi + 0x190]
mov eax, dword [esi + 0xc]
and dword [esp + 0x18], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 4], edx
mov edx, edi
mov dword [esp], ecx
lea ecx, [esi + 0x60]
call fcn.00446d5a
add esp, 0x2c
cmp dword [esi + 0x60], 2
jne 0x403672
mov bl, byte [esi + 0x64]
movzx edx, bl
mov ebx, 0x80000002
mov eax, edx
mov dword [esi + 0x270], 0x14
shr eax, 8
push 0x5d
pop edi
shl eax, 8
mov dword [esi + 0x270], 0x14
mov ecx, eax
movzx eax, dl
or eax, ecx
mov dword [esi + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x180]
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x17c]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x78], eax
push 0x1c
pop ecx
call fcn.004019d0
mov edi, eax
mov eax, dword [esi + 0x78]
movsd xmm0, qword [esi + 0x70]
movsd xmm2, qword [esi + 0x60]
movsd xmm1, qword [esi + 0x68]
mov ecx, 0x45b430
mov dword [edi + 0x18], eax
movsd qword [edi + 0x10], xmm0
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm2
mov dword [esi + 0x270], 0x28
lea eax, [esi + 0x1a8]
lea edx, [esi + 0xe0]
mov dword [esi + 0x270], 0x28
mov dword [eax], edi
mov dword [eax + 4], ecx
lea ecx, [esi + 0x60]
mov dword [edx], eax
mov dword [edx + 4], 0x401a90
mov dword [ecx], str.Failed_to_check_for_updates____n_nL
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
or dword [esi + 0x270], 0xffffffff
call fcn.0040149e
mov dword [esi + 0x270], 0x18
lea ecx, [esi + 0x60]
mov edx, 0x80000002
push 0x20
push str.SOFTWAREWow6432NodeValveSteamInstallPathSOFTWAREValveSteamC:Users_runneradmin.cargo_registry_srcindex.crates.io_1cd66030c949c28d_steamy_vdf_0.2.0_srcentry_table.rs
call fcn.0043b2a6
pop eax
pop ecx
cmp byte [esi + 0x60], 4
jne 0x40313e
mov eax, dword [esi + 0x64]
jmp 0x403196
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x270], 0x21
mov edx, 0x80000002
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
lea ecx, [esi + 0xe0]
push 0x14
push 0x4711db
call fcn.0043b2a6
pop eax
pop ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esi + 0x270], 0x18
call fcn.00439df7
mov al, byte [esi + 0xe0]
cmp al, 4
jne 0x40327a
mov eax, dword [esi + 0xe4]
mov dword [esi + 0x18], eax
mov dword [esi + 0x270], 0x19
lea ecx, [esi + 0x34]
mov edx, 0x4711d0
push 0xb
call fcn.0043b0bb
pop eax
and dword [esi + 0x210], 0
mov ecx, 0x800
mov dword [esi + 0x188], 0x800
mov dword [esi + 0x270], 0x1f
call fcn.00441780
lea ecx, [esi + 0x60]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
mov ecx, dword [esi + 0x38]
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x64]
lea ecx, [esi + 0x188]
mov dword [esi + 0x270], 0x20
push ecx
mov dword [esi + 4], eax
push eax
lea eax, [esi + 0x210]
push eax
push 0
push dword [esi + 8]
push dword [esi + 0x18]
call sub.ADVAPI32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x40322d
mov edx, dword [esi + 0x188]
lea ecx, [esi + 0x60]
call fcn.00416ce9
jmp 0x4031ea
test eax, eax
jne 0x403251
mov eax, dword [esi + 0x188]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x210]
cmp eax, 0xb
jbe 0x40328d
mov dword [esi + 0xe8], 0xde
jmp 0x403257
mov dword [esi + 0xe8], eax
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 4]
and dword [esi + 0xe4], 0
mov dword [esi + 0xe0], 0x80000000
call fcn.00417311
mov edi, 0x80000000
jmp 0x4032af
mov edx, dword [esi + 0xe4]
movzx ecx, al
call fcn.00439df7
jmp 0x40389d
movsd xmm0, qword [esi + 0x60]
mov ecx, dword [esi + 0x68]
movsd qword [esi + 0xe0], xmm0
mov dword [esi + 0xe8], ecx
mov byte [esi + 0xec], al
mov edi, dword [esi + 0xe0]
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 8]
call fcn.0044076a
cmp edi, 0x80000000
jne 0x4032e9
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe8]
mov dword [esi + 0x158], ecx
mov dword [esi + 0x154], eax
mov dword [esi + 0x150], 0x80000000
jmp 0x403876
movzx eax, byte [esi + 0xec]
cmp eax, 7
ja 0x403835
mov dword [esi + 0x20], eax
mov eax, 0x86
mov ecx, dword [esi + 0x20]
bt eax, ecx
jae 0x403835
mov edi, dword [esi + 0xe8]
mov eax, dword [esi + 0xe4]
lea ecx, [esi + 0x60]
mov dword [esi + 0x270], 0x1e
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
mov edx, edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
shr edx, 2
bt edi, 1
adc edx, 0
call fcn.00416ce9
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
xor ecx, ecx
and edi, 0xfffffffe
add edi, ebx
mov dword [esi + 0xc], edi
test cx, cx
je 0x403366
movzx eax, word [esi + 0x10]
jmp 0x403374
cmp ebx, edi
je 0x403504
movzx eax, word [ebx]
add ebx, 2
mov ecx, eax
and ecx, 0xf800
cmp cx, 0xd800
jne 0x403395
cmp ax, 0xdbff
jbe 0x4033d8
mov dword [esi + 4], 0
jmp 0x40343f
movzx ecx, ax
cmp ax, 0x80
jae 0x4033ff
mov edx, dword [esi + 0x68]
cmp edx, dword [esi + 0x60]
jne 0x4033ca
mov dword [esi + 4], ecx
lea ecx, [esi + 0x60]
mov dword [esi + 8], ebx
mov dword [esi + 0x270], 0x1e
call fcn.004417af
mov edx, dword [esi + 0x68]
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x64]
mov byte [eax + edx], cl
inc edx
xor ecx, ecx
mov dword [esi + 0x68], edx
jmp 0x40335b
cmp ebx, edi
je 0x403436
movzx ecx, word [ebx]
add ebx, 2
mov edx, ecx
add edx, 0x2000
cmp dx, 0xfc00
jae 0x40344a
xor eax, eax
mov word [esi + 0x10], cx
inc eax
mov dword [esi + 4], eax
mov eax, ecx
jmp 0x40343f
and dword [esi + 0x34], 0
cmp ecx, 0x800
jae 0x40346c
mov eax, ecx
and cl, 0x3f
mov dword [esi + 8], ebx
mov dword [esi + 0x270], 0x1e
mov dword [esi + 4], 0
shr eax, 6
or cl, 0x80
or al, 0xc0
mov byte [esi + 0x34], al
mov byte [esi + 0x35], cl
push 2
jmp 0x4034a1
mov dword [esi + 4], 0
mov ebx, edi
and dword [esi + 0x34], 0
mov ecx, 0xfffd
jmp 0x403473
movzx edx, cx
mov ecx, 0x3ff
and dword [esi + 0x34], 0
and eax, ecx
and edx, ecx
mov ecx, edx
shl eax, 0xa
mov edx, 0x10000
or ecx, eax
add ecx, edx
cmp ecx, edx
jae 0x4034c1
mov dword [esi + 4], 0
mov eax, ecx
mov dword [esi + 8], ebx
mov dword [esi + 0x270], 0x1e
shr eax, 0xc
or al, 0xe0
mov byte [esi + 0x34], al
mov eax, ecx
and cl, 0x3f
shr eax, 6
or cl, 0x80
and al, 0x3f
or al, 0x80
mov byte [esi + 0x35], al
mov byte [esi + 0x36], cl
push 3
pop eax
lea eax, [esi + eax + 0x34]
lea ecx, [esi + 0x60]
lea edx, [esi + 0x34]
push eax
call fcn.00449428
pop eax
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 4]
jmp 0x40335b
mov eax, ecx
mov dword [esi + 8], ebx
mov dword [esi + 0x270], 0x1e
mov dword [esi + 4], 0
shr eax, 0x12
or al, 0xf0
mov byte [esi + 0x34], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esi + 0x35], al
mov eax, ecx
and cl, 0x3f
shr eax, 6
or cl, 0x80
and al, 0x3f
or al, 0x80
mov byte [esi + 0x36], al
mov byte [esi + 0x37], cl
push 4
jmp 0x4034a1
mov eax, dword [esi + 0x68]
mov edx, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
inc eax
cmp eax, 1
je 0x403521
cmp byte [ecx + eax - 2], 0
lea edi, [eax - 1]
mov eax, edi
je 0x40350e
jmp 0x403523
xor edi, edi
cmp byte [esi + 0x20], 7
jne 0x40360a
lea ebx, [esi + 0x34]
mov dword [esi + 0x20], edx
mov dword [esi + 8], edi
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], ecx
and dword [ebx], 0
xor eax, eax
and dword [esi + 0x60], 0
mov dword [esi + 0x64], ecx
mov dword [esi + 0x68], edi
mov dword [esi + 0x70], edi
inc eax
mov dword [ebx + 4], eax
mov dword [esi + 0x74], eax
and dword [ebx + 8], 0
and dword [esi + 0x78], 0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
lea edx, [eax + ecx]
mov edi, ecx
mov eax, 0
sub ebx, ecx
mov ecx, edx
cmovb ecx, eax
jb 0x40362b
cmp ebx, 7
ja 0x40359e
xor eax, eax
xor edx, edx
cmp ebx, edx
je 0x4035b0
cmp byte [ecx + edx], 0
je 0x4035ab
inc edx
jmp 0x403591
xor ecx, ecx
push ebx
call fcn.0040b2e0
pop ecx
mov ebx, edx
jmp 0x4035b0
xor eax, eax
mov ebx, edx
inc eax
cmp eax, 1
jne 0x40362b
mov eax, dword [esi + 4]
add ebx, edi
mov ecx, ebx
inc ecx
je 0x40356e
cmp ecx, dword [esi + 8]
ja 0x40356e
add ebx, eax
cmp byte [ebx], 0
jne 0x40356e
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x270], 0x1d
lea ecx, [esi + 0x34]
add edx, eax
push ebx
call fcn.00449428
pop eax
lea eax, [0x495035]
lea ecx, [esi + 0x34]
mov edx, 0x495034
push eax
call fcn.00449428
pop eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], eax
jmp 0x403568
mov dword [esi + 0x150], edx
mov dword [esi + 0x154], ecx
mov dword [esi + 0x158], edi
mov dword [esi + 0x270], 0x19
jmp 0x403850
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x270], 0x1d
add eax, ecx
add edx, ecx
lea ecx, [esi + 0x34]
push eax
call fcn.00449428
pop eax
mov eax, dword [esi + 0x3c]
movsd xmm0, qword [esi + 0x34]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 4]
mov dword [esi + 0x158], eax
movsd qword [esi + 0x150], xmm0
call fcn.00411da6
jmp 0x403850
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0x270], 8
mov dword [esi + 4], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 8], ecx
push 0x494ea8
push eax
call fcn.004015e4
pop ecx
pop edi
mov edi, eax
mov ebx, edx
mov ecx, eax
push 4
push 0x494a2b
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4036d0
mov ecx, edi
mov edx, ebx
push 5
push 0x494a2f
call fcn.0041df36
pop ecx
pop edx
test al, al
je 0x40465e
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
call fcn.00417311
mov eax, dword [esi + 0x10]
test al, al
je 0x40458b
movzx eax, al
cmp eax, 1
jne 0x404678
or dword [esi + 0x270], 0xffffffff
lea ebx, [esi + 0x60]
mov edx, str.powershell_help_command_n_t_t_t_t_ErrorActionPreference___Stop__n_t_t_t_t_System.Net.ServicePointManager_::MaxServicePointIdleTime____n_t_t_t_t_data___Invoke_WebRequest__TimeoutSec___.Content__n_t_t_t_t_Writer__New_Object_System.IO.BinaryWriter__console_::OpenStandardOutput_____n_t_t_t_t_Writer.Write__data__0___data.length__n_t_t_t_t_Writer.Flush___n_t_t_t_t_Writer.Close___n_t_t_t
mov ecx, ebx
push 0xa
call fcn.00440ada
pop eax
mov dword [esi + 0xb4], 0x8000000
lea edi, [esi + 0xe0]
push 0x68
push ebx
push edi
call fcn.0044ac50
add esp, 0xc
mov dword [esi + 0x270], 0xb
mov ecx, edi
mov edx, 0x47178f
push 8
call fcn.00438ed0
pop eax
lea edx, [esi + 0x60]
mov dword [edx + 4], 0x45bb7c
push 0x5d
pop eax
mov dword [edx + 8], eax
and dword [edx + 0xc], 0
mov dword [edx + 0x10], eax
push 0x27
pop eax
lea ecx, [esi + 0x150]
mov dword [edx], eax
mov dword [edx + 0x14], 1
mov dword [edx + 0x18], eax
mov byte [esi + 0x5f], 0
mov dword [esi + 0x270], 0xc
call fcn.004414ee
mov eax, dword [esi + 0x150]
mov dword [esi + 0xc], eax
test eax, eax
mov eax, 1
je 0x40519e
lea ecx, [esi + 0x190]
mov dword [esi + 8], 0
lea edx, [esi + 0x60]
and dword [ecx], 0
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
push 0x27
pop edi
mov dword [edx], edi
mov dword [edx + 4], 0x45bb7c
push 0x5d
pop ecx
mov dword [edx + 8], ecx
and dword [edx + 0xc], 0
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], edi
lea ecx, [esi + 0x150]
lea edx, [esi + 0x60]
mov dword [esi + 0x270], 0xd
call fcn.004414ee
mov ecx, dword [esi + 8]
cmp dword [esi + 0x150], 0
lea edx, [ecx + 0x45bb7c]
je 0x404862
mov eax, dword [esi + 0x154]
mov edi, dword [esi + 0x158]
sub eax, ecx
mov dword [esi + 4], edi
lea ecx, [esi + 0x190]
push eax
call fcn.00441750
pop eax
lea ecx, [esi + 0x190]
mov edx, 0x471797
push 2
call fcn.00441750
pop eax
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
jmp 0x4037ce
and dword [esi + 0x154], 0
mov dword [esi + 0x158], 0xde
mov dword [esi + 0x150], 0x80000000
lea ecx, [esi + 0xe0]
mov dword [esi + 0x270], 0x19
call fcn.0043b353
mov eax, dword [esi + 0x150]
cmp eax, 0x80000000
jne 0x403a14
lea ecx, [esi + 0x150]
mov dword [esi + 0x270], 0x19
call fcn.0043b353
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x270], 0x18
call fcn.0044945a
or dword [esi + 0x270], 0xffffffff
mov ecx, 0x80000002
call fcn.0044945a
mov dword [esi + 0x270], 0x27
push 0xf
pop edx
mov ecx, str.Stronghold2.exe
mov dword [esi + 4], edx
call fcn.0042b1e0
test al, al
je 0x403902
mov al, byte [0x49fb08]
push 0xf
pop edi
mov ecx, edi
call fcn.004361d0
test eax, eax
je 0x4061ad
mov ebx, eax
mov dword [eax + 0xb], 0x6578652e
mov dword [eax + 8], 0x2e32646c
mov dword [eax + 4], 0x6f68676e
mov dword [eax], 0x6f727453
jmp 0x403907
mov edi, 0x80000000
mov ecx, 0x80000000
call fcn.00439ec8
cmp edi, 0x80000000
sete al
jne 0x40396a
mov ecx, 0x80000000
mov edx, ebx
call fcn.00439ec8
lea ecx, [esi + 0x60]
or dword [esi + 0x270], 0xffffffff
lea eax, [esi + 0xe0]
mov dword [ecx], str.Couldnt_find_Stronghold_2_executable__Please_place_this_program_in_the_same_folder_as
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [eax], str.Stronghold2.exe
mov dword [ecx + 8], eax
mov dword [eax + 4], 0x440c47
mov dword [ecx + 0xc], 1
call fcn.0042aa30
jmp 0x404994
mov byte [esi + 0x178], al
mov dword [esi + 0x20], edi
mov eax, dword [esi + 4]
lea ecx, [esi + 0xe0]
lea edx, [esi + 0x1a8]
mov dword [esi + 0xc], ebx
mov dword [esi + 0x270], 0x29
mov dword [ecx], ebx
mov dword [edx], ecx
mov dword [edx + 4], 0x42b300
mov dword [ecx + 4], eax
lea ecx, [esi + 0x60]
mov dword [ecx], str.Stronghold_2_found_at
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], 1
call fcn.0042a770
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
call fcn.0042adb0
test eax, eax
je 0x403a0f
mov edi, edx
cmp edx, 2
jne 0x4039e1
cmp word [eax], 0x2e2e
jne 0x4039e1
xor ecx, ecx
jmp 0x403a08
mov edx, edi
test edx, edx
je 0x403c2e
mov ecx, edx
dec edx
cmp byte [eax + ecx - 1], 0x2e
jne 0x4039e3
sub edi, ecx
add ecx, eax
test edx, edx
mov dword [esi + 0x270], 0x29
cmove ecx, edx
xor edx, edx
jmp 0x403c32
jmp 0x403c32
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x154]
mov dword [esi + 8], eax
mov dword [esi + 0x270], 0x1a
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x250]
mov dword [esi + 4], edx
call fcn.0043ab31
mov ecx, dword [esi + 0x258]
mov edx, dword [esi + 0x250]
mov edi, dword [esi + 0x254]
movsd xmm0, qword [0x470ec8]
movsd xmm1, qword [0x470ec0]
mov eax, dword [esi + 0x25c]
mov dword [esi + 0x270], 0x1b
movsd qword [esi + 0xe8], xmm0
movsd qword [esi + 0xe0], xmm1
mov dword [esi + 0xf0], edx
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], ecx
lea ecx, [esi + 0x240]
mov dword [esi + 0xfc], eax
mov byte [esi + 0x100], 0
call fcn.0043ab31
mov eax, dword [esi + 0x24c]
lea edi, [esi + 0x63]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x248]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x240]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x244]
mov dword [esi + 0x2c], eax
push 0x28
pop ebx
push ebx
lea eax, [esi + 0xe0]
push eax
push edi
call fcn.0044ac50
add esp, 0xc
lea eax, [esi + 0x1a8]
push ebx
push edi
push eax
call fcn.0044ac50
add esp, 0xc
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x270], 0x23
call fcn.0044945a
mov ecx, 0x80000002
mov dword [esi + 0x270], 0x22
call fcn.0044945a
xor edx, edx
xor ecx, ecx
inc edx
call fcn.00417311
mov eax, dword [esi + 8]
lea edi, [esi + 0x80]
mov dword [edi - 0x20], eax
mov eax, dword [esi + 4]
mov dword [edi - 0x1c], eax
mov eax, dword [esi + 0xc]
mov dword [edi - 0x18], eax
movzx eax, word [esi + 0x238]
mov byte [edi - 0x14], 1
mov word [edi - 0x13], ax
mov al, byte [esi + 0x23a]
mov byte [edi - 0x11], al
movzx eax, word [esi + 0x17c]
and dword [edi - 0x10], 0
mov dword [edi - 0xc], 4
and dword [edi - 8], 0
mov byte [edi - 4], 0
mov word [edi - 3], ax
mov al, byte [esi + 0x17e]
mov byte [edi - 1], al
push 0x28
lea eax, [esi + 0x1a8]
push eax
push edi
call fcn.0044ac50
add esp, 0xc
movsd xmm0, qword [0x470ec0]
movsd xmm1, qword [0x470ec8]
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x60]
mov dword [esi + 0x270], 0x24
movsd qword [edi + 0x28], xmm0
movsd qword [edi + 0x30], xmm1
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x30]
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x194]
mov dword [edi + 0x48], 0x80000000
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x190]
mov dword [edi + 0x4c], eax
call fcn.0043b704
test eax, eax
je 0x40421e
mov edx, dword [eax + 0x14]
lea ecx, [esi + 0xe0]
push dword [eax + 0x18]
mov dword [esi + 8], eax
call fcn.004071eb
mov eax, dword [esi + 8]
add esp, 4
mov al, byte [eax + 0x1c]
mov ecx, dword [esi + 0xe4]
mov edi, dword [esi + 0xe0]
mov ebx, dword [esi + 0xe8]
mov byte [esi + 8], al
mov dword [esi + 4], ecx
jmp 0x404223
mov dl, 1
mov ecx, eax
xor ebx, ebx
test dl, 1
cmove ebx, ecx
test eax, eax
cmove ebx, eax
mov eax, 0x4945c8
test ebx, ebx
cmovne eax, ebx
cmovne ebx, edi
lea edi, [esi + 0x60]
mov ecx, edi
mov edx, eax
push ebx
call fcn.004096d0
pop eax
cmp dword [edi], 0
mov eax, str.exe.NULcmd.exefallback_RNG_broken:
cmove eax, dword [edi + 4]
mov dword [esi + 0x1a8], eax
push 3
pop eax
cmove eax, dword [edi + 8]
mov dword [edi], 0x45b6d4
mov dword [edi + 4], 2
and dword [edi + 0x10], 0
lea edx, [esi + 0xe0]
lea ecx, [esi + 0x1a8]
mov dword [esi + 0x270], 0x29
mov dword [edi + 8], edx
mov dword [esi + 0xe0], ecx
lea ecx, [esi + 0x34]
lea edx, [esi + 0x60]
mov dword [edi + 0xc], 1
mov dword [esi + 0xe4], 0x440c47
mov dword [esi + 0x1ac], eax
call fcn.00407750
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 4]
mov dword [esi + 0x270], 0x3f
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x18], eax
mov dword [esi + 0x184], eax
call fcn.0042adb0
mov ebx, dword [esi + 4]
test eax, eax
je 0x403d2c
cmp edx, 2
jne 0x403cff
cmp word [eax], 0x2e2e
je 0x403d2c
mov edi, edx
test edi, edi
je 0x403d2c
mov ecx, edi
dec edi
cmp byte [eax + ecx - 1], 0x2e
jne 0x403d01
test edi, edi
je 0x403d2c
sub edx, ecx
mov eax, ebx
sub eax, edx
mov dword [esi + 0x10], eax
jb 0x406222
mov eax, dword [esi + 8]
lea edi, [eax + ebx]
sub edi, edx
jmp 0x403d36
mov eax, dword [esi + 8]
mov dword [esi + 0x10], ebx
lea edi, [eax + ebx + 1]
test edi, edi
je 0x403d72
js 0x4061bd
mov al, byte [0x49fb08]
mov ecx, edi
call fcn.004361d0
test eax, eax
jne 0x403d75
mov eax, dword [esi + 0x18]
xor ecx, ecx
mov edx, edi
mov dword [esi + 0x270], 0x3f
inc ecx
mov dword [esi + 0x184], eax
call fcn.00458570
jmp 0x4062a6
xor eax, eax
inc eax
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], eax
and dword [esi + 0x68], 0
xor ebx, ebx
mov byte [esi + 0x6c], 1
mov dword [esi + 0x270], 0x40
cmp edi, ecx
mov edi, ecx
jae 0x403dad
lea ecx, [esi + 0x60]
xor edx, edx
push edi
call fcn.00459630
pop eax
mov eax, dword [esi + 0x64]
mov ebx, dword [esi + 0x68]
mov edi, dword [esi + 0x10]
add eax, ebx
push edi
push dword [esi + 0xc]
push eax
call fcn.0044ac50
add esp, 0xc
mov edx, dword [esi + 0x18]
add ebx, edi
lea ecx, [esi + 0x60]
mov dword [ecx + 8], ebx
push dword [esi + 8]
call fcn.0042aed0
pop eax
lea ecx, [esi + 0x60]
mov edx, dword [esi + 0x38]
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x18], eax
call fcn.00417311
mov byte [esi + 0x17], 1
mov dword [esi + 0x270], 0x3b
lea ecx, [esi + 0x60]
mov dword [esi + 0x10], edi
mov edx, edi
mov dword [esi + 0x30], ebx
push ebx
call fcn.004280c0
pop eax
mov eax, dword [esi + 0x60]
xor eax, 2
or eax, dword [esi + 0x64]
jne 0x403e40
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
mov dword [esi + 8], 0
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], eax
and dword [esi + 0xe4], 0
mov dword [esi + 0xe0], 2
jmp 0x403e6a
push 0x48
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.0044ac50
add esp, 0xc
mov eax, dword [esi + 0xe0]
xor eax, 2
or eax, dword [esi + 0xe4]
setne al
mov dword [esi + 8], eax
lea ecx, [esi + 0xe0]
mov byte [esi + 0x17], 1
call fcn.00401577
cmp byte [esi + 8], 0
je 0x403fee
lea ecx, [esi + 0x60]
lea eax, [esi + 0xe0]
mov dword [esi + 0xe0], 0x45b788
mov dword [esi + 0xe4], 0x440c47
mov byte [esi + 0x17], 1
mov dword [ecx], str._nBackup_of__already_exists__would_you_like_to_restore_it___Y_N_:
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042a770
mov byte [esi + 0x17], 1
call fcn.00429660
lea eax, [0x49fa3c]
lea edx, [esi + 0xe0]
lea ecx, [esi + 0x60]
mov byte [esi + 0x17], 1
mov dword [edx], eax
call fcn.004296f0
lea ecx, [esi + 0x60]
mov byte [esi + 0x17], 1
call fcn.00401863
and dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 1
and dword [esi + 0xe8], 0
mov dword [esi + 0x270], 0x3e
call fcn.00428d50
lea eax, [esi + 0xe0]
lea ecx, [esi + 0x60]
lea edx, [0x49fa14]
push eax
call fcn.00428de0
pop eax
lea ecx, [esi + 0x60]
call fcn.00401863
mov ebx, dword [esi + 0xe4]
mov edi, dword [esi + 0xe8]
mov ecx, ebx
mov edx, edi
call fcn.0040159a
mov ecx, ebx
mov edx, edi
mov dword [esi + 8], ebx
call fcn.0041dfc9
mov edi, eax
mov ebx, edx
mov ecx, eax
push 1
push str.yInvalid_option__please_enter_Y_or_N:
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x40402c
mov ecx, edi
mov edx, ebx
push 1
push 0x46d49b
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x4040ff
mov dword [esi + 0x60], 0x45b844
mov dword [esi + 0x64], 1
and dword [esi + 0x70], 0
mov dword [esi + 0x68], 0x4945c8
and dword [esi + 0x6c], 0
lea ecx, [esi + 0x60]
call fcn.0042a770
call fcn.00429660
lea eax, [0x49fa3c]
lea ecx, [esi + 0x60]
lea edx, [esi + 0x1a8]
mov dword [esi + 0x1a8], eax
call fcn.004296f0
lea ecx, [esi + 0x60]
call fcn.00401863
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 8]
call fcn.00417311
jmp 0x403ef3
mov edx, dword [esi + 0xc]
mov byte [esi + 0x17], 1
lea ecx, [esi + 0x60]
push dword [esi + 0x30]
push dword [esi + 0x10]
push dword [esi + 4]
call fcn.00438ce0
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x4041b9
mov edi, dword [esi + 0x68]
mov ecx, dword [esi + 0x64]
mov ebx, edi
shld edi, ecx, 0x18
mov eax, ecx
mov dword [esi + 8], ecx
shr ebx, 8
jmp 0x404112
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 8]
call fcn.00417311
mov edx, dword [esi + 0x10]
mov dword [esi + 0x270], 0x3d
lea ecx, [esi + 0x1a8]
push dword [esi + 4]
push dword [esi + 0xc]
push dword [esi + 0x30]
call fcn.00438ce0
add esp, 0xc
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
call fcn.00417311
cmp dword [esi + 0x1a8], 0
je 0x4042b3
lea ecx, [esi + 0x60]
movsd xmm0, qword [esi + 0x1ac]
lea eax, [esi + 0x150]
lea edx, [esi + 0xe0]
mov dword [esi + 0xe0], 0x45b788
mov dword [esi + 0xe4], 0x440c47
mov dword [esi + 0x270], 0x3c
mov dword [ecx], str.Failed_to_restore_backup_of_____n
mov dword [ecx + 4], 3
and dword [ecx + 0x10], 0
mov dword [esi + 0xe8], eax
mov dword [ecx + 8], edx
mov dword [esi + 0xec], fcn.004258c0
mov dword [ecx + 0xc], 2
movsd qword [eax], xmm0
call fcn.0042aa30
lea eax, [esi + 0x150]
mov byte [esi + 0x17], 0
mov dword [esi + 0x270], 0x3b
push eax
call fcn.00401323
pop eax
jmp 0x4042fe
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 8]
call fcn.00417311
mov al, 4
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
call fcn.00417311
mov eax, dword [esi + 8]
cmp al, 4
je 0x4042fe
shld ebx, edi, 8
lea ecx, [esi + 0x60]
shl edi, 8
movzx eax, al
mov dword [esi + 0xe0], 0x45b788
mov dword [esi + 0xe4], 0x440c47
mov dword [esi + 0x270], 0x3a
or eax, edi
mov dword [ecx], str.Error_creating_backup_of
mov dword [ecx + 4], 3
and dword [ecx + 0x10], 0
mov dword [esi + 0x1ac], ebx
mov dword [esi + 0x1a8], eax
lea eax, [esi + 0xe0]
mov dword [ecx + 8], eax
lea eax, [esi + 0x1a8]
mov dword [ecx + 0xc], 2
mov dword [esi + 0xe8], eax
mov dword [esi + 0xec], fcn.004258c0
call fcn.0042aa30
lea eax, [esi + 0x1a8]
mov dword [esi + 0x270], 0x29
push eax
call fcn.00401323
pop eax
jmp 0x4042fe
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0xe0]
mov edx, dword [esi + 4]
mov byte [esi + 0x17], 1
mov dword [esi + 0x1a8], ecx
lea ecx, [esi + 0x60]
mov dword [esi + 0x1ac], 0x42b300
mov dword [ecx], str.A_backup_has_been_created_at_.bak_with_the_original_executable_file_if_you_want_to_restore._n
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], edx
lea edx, [esi + 0x1a8]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], 1
call fcn.0042a770
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
call fcn.00417311
jmp 0x4042fe
mov edi, 0x80000000
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0x60]
call fcn.004013ad
cmp edi, 0x80000000
je 0x4038ae
mov eax, dword [esi + 4]
mov dl, byte [esi + 8]
lea ecx, [esi + 0x60]
mov dword [esi + 0x270], 0x25
mov dword [ecx], edi
mov dword [ecx + 8], ebx
mov dword [ecx + 4], eax
mov byte [ecx + 0xc], dl
mov edx, str.Stronghold2.exe
push 0xf
call fcn.00426f80
pop eax
mov eax, dword [esi + 0x60]
cmp eax, 0x80000000
je 0x4038ae
mov ecx, dword [esi + 0x64]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x20], eax
mov dword [esi + 0x270], 0x26
mov dword [esi + 0xc], ecx
mov dword [esi + 4], edx
call fcn.0042b1e0
test al, al
je 0x404852
cmp dword [esi + 0x20], 0x80000000
mov ebx, dword [esi + 0xc]
sete byte [esi + 0x178]
jmp 0x403973
lea ecx, [esi + 0x60]
lea eax, [esi + 0xe0]
mov dword [esi + 0xe0], 0x45b788
mov dword [esi + 0xe4], 0x440c47
mov byte [esi + 0x17], 0
mov dword [esi + 0x270], 0x3b
mov dword [ecx], str.Backup_of__restored__n
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042a770
lea edx, [esi + 0x60]
mov dword [esi + 0x270], 0x29
lea ecx, [esi + 0xe0]
and dword [edx], 0
and dword [edx + 8], 0
and dword [edx + 0xc], 0
mov dword [edx + 0x10], 7
and dword [edx + 0x18], 0
and dword [edx + 0x14], 0
mov word [edx + 0x1c], 0x101
and dword [edx + 0x1e], 0
push dword [esi + 4]
push dword [esi + 0xc]
call fcn.00416d7e
pop eax
pop ecx
cmp byte [esi + 0xe0], 4
jne 0x404353
mov edx, dword [esi + 0xe4]
jmp 0x404368
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 0xe4]
cmp cl, 4
jne 0x404915
lea edi, [esi + 0x60]
mov dword [esi + 0x150], edx
mov dword [esi + 8], edx
mov ecx, edi
call fcn.004260e0
mov eax, dword [edi]
xor eax, 2
or eax, dword [edi + 4]
jne 0x4043aa
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], eax
and dword [esi + 0xe4], 0
mov dword [esi + 0xe0], 2
jmp 0x4043cd
push 0x48
push edi
lea eax, [esi + 0xe0]
push eax
call fcn.0044ac50
add esp, 0xc
mov eax, dword [esi + 0xe0]
xor eax, 2
or eax, dword [esi + 0xe4]
jne 0x4043e8
lea ecx, [esi + 0xe0]
mov dword [esi + 0x270], 0x35
call fcn.00401577
mov dl, 1
xor ecx, ecx
jmp 0x4043fa
cmp dword [esi + 0x11c], 0
mov eax, dword [esi + 0x118]
setne cl
xor edx, edx
or cl, dl
mov ecx, 0x1000000
mov dword [esi + 0x270], 0x35
cmove ecx, eax
call fcn.00441780
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], edx
and dword [esi + 0x3c], 0
mov dword [esi + 0x220], edx
mov dword [esi + 0x224], eax
mov dword [esi + 0x270], 0x36
call fcn.0043a430
mov dword [esi + 0x30], eax
sub esp, 4
and dword [esp], 0
lea ecx, [esi + 0x34]
xor edx, edx
call fcn.0043a19a
pop ecx
mov ch, 0x26
mov cl, 1
cmp eax, 0x80000001
mov dword [esi + 0x2c], ecx
jne 0x4048ce
mov edx, dword [esi + 0x30]
mov dword [esi + 0x270], 0x37
lea ecx, [esi + 0x34]
push 0
call fcn.00416fb2
pop eax
mov ebx, dword [esi + 8]
lea edi, [esi + 0x60]
mov ecx, edi
mov edx, ebx
call fcn.004260e0
mov eax, dword [edi]
xor eax, 2
or eax, dword [edi + 4]
jne 0x4044e5
xor edi, edi
cmp byte [esi + 0x68], 3
mov al, 1
mov dword [esi + 0x28], eax
jne 0x40452d
mov eax, dword [esi + 0x6c]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x270], 0x39
mov dword [esi + 0x18], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov eax, dword [esi + 4]
cmp dword [eax + 4], 0
je 0x4044d6
mov edx, dword [eax + 8]
mov ecx, dword [esi + 0x18]
call fcn.004070e0
push 4
pop edx
mov ecx, dword [esi + 0x10]
call fcn.004070e0
xor edi, edi
jmp 0x40453c
mov eax, dword [esi + 0x98]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x9c]
and dword [esi + 0x64], 0
and dword [esi + 0x60], 0
mov dword [esi + 0x10], eax
push 1
push edi
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x40452f
mov edx, dword [esi + 4]
xor eax, eax
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x28], 0
sub edx, dword [esi + 0x60]
sbb ecx, dword [esi + 0x64]
cmovb edx, eax
mov edi, edx
jmp 0x40453c
jmp 0x40453c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, 1
xor edi, edi
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x3c]
mov eax, ecx
sub eax, ebx
cmp eax, edi
jae 0x404a49
add edi, ebx
jb 0x4048ce
mov dword [esi + 4], edx
mov edx, edi
mov dword [esi + 0x148], ebx
mov ebx, edi
mov dword [esi + 0x1a4], ecx
not edx
shr edx, 0x1f
test ecx, ecx
je 0x404890
mov eax, dword [esi + 0x38]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], 1
mov dword [esi + 0x68], ecx
jmp 0x404894
or dword [esi + 0x270], 0xffffffff
lea ebx, [esi + 0x60]
mov edx, 0x471748
mov ecx, ebx
push 4
call fcn.00440ada
pop eax
lea edi, [esi + 0x60]
lea eax, [esi + 0xe0]
mov dword [edi + 0x54], 0x8000000
push 0x68
push ebx
push eax
call fcn.0044ac50
add esp, 0xc
lea eax, [esi + 0x190]
lea ecx, [esi + 0x210]
mov dword [edi], 0x471758
mov edx, edi
mov dword [esi + 0x270], 9
mov dword [ecx], eax
mov dword [eax + 4], 0x40000000
and dword [eax], 0
xor eax, eax
mov dword [ecx + 4], fcn.0040f050
inc eax
mov dword [edi + 4], eax
and dword [edi + 0x10], 0
mov dword [edi + 8], ecx
lea ecx, [esi + 0x150]
mov dword [edi + 0xc], eax
call fcn.00441464
lea ecx, [esi + 0xe0]
lea edx, [esi + 0x150]
call fcn.00440a4c
lea ecx, [esi + 0xe0]
mov edx, str.__tries1_qO_
push 9
call fcn.00438ed0
pop eax
xor eax, eax
cmp eax, 2
je 0x4047e9
mov edx, dword [eax*8 + 0x471770]
lea ecx, [esi + 0xe0]
mov dword [esi + 8], eax
push dword [eax*8 + 0x471774]
call fcn.00438ed0
pop eax
mov eax, dword [esi + 8]
inc eax
jmp 0x404632
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
call fcn.00417311
mov edx, 0x45bb7c
mov ebx, 0x80000003
jmp 0x40302b
or dword [esi + 0x270], 0xffffffff
lea ebx, [esi + 0x60]
mov edx, str.curlwget__timeout
mov ecx, ebx
push 4
call fcn.00440ada
pop eax
mov dword [esi + 0xb4], 0x8000000
lea edi, [esi + 0xe0]
push 0x68
push ebx
push edi
call fcn.0044ac50
add esp, 0xc
mov dword [esi + 0x270], 0x11
mov ecx, edi
mov edx, 0x47191b
push 2
call fcn.00438ed0
pop eax
lea ecx, [esi + 0xe0]
mov edx, 0x47191d
push 2
call fcn.00438ed0
pop eax
lea eax, [esi + 0x210]
lea ecx, [esi + 0x150]
and dword [esi + 0x7c], 0
mov dword [esi + 0x70], 0x20
mov byte [esi + 0x80], 3
and dword [esi + 0x60], 0
and dword [esi + 0x68], 0
mov dword [esi + 0x270], 0x12
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [eax], 0
and dword [ecx + 8], 0
mov dword [esi + 0x74], ecx
lea ecx, [esi + 0x60]
mov dword [eax + 4], 0x40000000
mov dword [esi + 0x78], 0x47144c
push ecx
push eax
call fcn.0040f050
pop ecx
pop edx
test al, al
jne 0x406247
movsd xmm0, qword [esi + 0x150]
mov eax, dword [esi + 0x158]
lea edx, [esi + 0x190]
lea ecx, [esi + 0xe0]
mov dword [esi + 0x270], 0x11
movsd qword [edx], xmm0
mov dword [edx + 8], eax
call fcn.00440a4c
lea ecx, [esi + 0xe0]
mov edx, 0x47191f
push 2
call fcn.00438ed0
pop eax
lea ecx, [esi + 0xe0]
mov edx, 0x45bb7c
push 0x5d
call fcn.00440ac9
pop ecx
lea ecx, [esi + 0x1a8]
lea edx, [esi + 0xe0]
call fcn.004354e0
mov eax, dword [esi + 0x1a8]
cmp eax, 0x80000000
jne 0x405071
mov ebx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x1b0]
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0xe0]
mov edi, ebx
mov dword [esi + 0x28], eax
shr edi, 8
call fcn.00440fdc
mov eax, edi
mov edi, dword [esi + 0x28]
mov edx, ebx
jmp 0x4052c5
lea ecx, [esi + 0xe0]
mov edx, 0x45bb7c
push 0x5d
call fcn.00440ac9
pop ecx
lea ecx, [esi + 0x1a8]
lea edx, [esi + 0xe0]
call fcn.004354e0
mov eax, dword [esi + 0x1a8]
cmp eax, 0x80000000
jne 0x405109
mov edi, dword [esi + 0x1ac]
mov eax, dword [esi + 0x1b0]
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0xe0]
mov dword [esi + 0x10], edi
shr edi, 8
mov dword [esi + 0x28], eax
mov dword [esi + 0xc], edi
call fcn.00440fdc
mov ebx, 0x80000001
jmp 0x405d7c
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0xc]
call fcn.00417311
jmp 0x4038ae
push 0x5d
pop eax
sub eax, ecx
lea ecx, [esi + 0x190]
push eax
call fcn.00441750
pop eax
mov ebx, dword [esi + 0x190]
mov edi, dword [esi + 0x194]
mov ecx, dword [esi + 0x198]
mov al, 1
mov dword [esi + 8], eax
jmp 0x4051ad
and dword [esi + 0x64], 0
lea edi, [esi + 0xe0]
lea eax, [esi + 0x60]
mov ecx, edi
push eax
push ebx
call fcn.004211a0
pop eax
pop ecx
cmp dword [edi], 0
mov eax, dword [edi + 4]
je 0x404a38
mov ecx, dword [esi + 0x1a4]
mov ebx, dword [esi + 0x148]
mov edx, dword [esi + 4]
cmp eax, 0x80000001
je 0x404a49
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x30]
mov edx, 0x2000
call fcn.0040158d
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
call fcn.00417311
mov dword [esi + 0x270], 0x29
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 4]
movzx eax, ch
shl edx, 0x10
movzx ecx, cl
shl eax, 8
or eax, edx
mov edx, dword [esi + 0x10]
or ecx, eax
mov dword [esi + 0x34], ecx
lea ecx, [esi + 0x60]
lea eax, [esi + 0x34]
mov dword [esi + 0xe0], 0x45b788
mov dword [esi + 0xe4], 0x440c47
mov dword [esi + 0x38], edx
mov dword [esi + 0x270], 0x2a
mov dword [ecx], str.Failed_to_open____did_you_forget_to_run_as_administrator__n
mov dword [ecx + 4], 3
and dword [ecx + 0x10], 0
mov dword [esi + 0xe8], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xec], fcn.004258c0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 2
call fcn.0042aa30
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x29
push eax
call fcn.00401323
pop eax
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0xc]
call fcn.00417311
xor ebx, ebx
lea ecx, [esi + 0x60]
or dword [esi + 0x270], 0xffffffff
inc ebx
mov dword [ecx], str._nPress_ENTER_to_exit...
mov dword [ecx + 4], ebx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
call fcn.00429660
lea edi, [esi + 0x60]
lea eax, [0x49fa3c]
lea edx, [esi + 0xe0]
mov ecx, edi
mov dword [edx], eax
call fcn.004296f0
mov ecx, edi
call fcn.00401863
call fcn.00428d50
and dword [edi], 0
mov dword [edi + 4], ebx
and dword [edi + 8], 0
mov dword [esi + 0x270], 0x41
lea edx, [0x49fa14]
lea ecx, [esi + 0xe0]
push edi
call fcn.00428de0
pop eax
lea ecx, [esi + 0xe0]
call fcn.00401863
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
call fcn.00417311
mov eax, dword [esi + 0x268]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], ebx
mov ecx, ebx
mov ebx, dword [esi + 0x148]
mov edx, dword [esi + 4]
cmp byte [esi + 0x28], 0
jne 0x404a7c
mov edi, edx
add edi, 0x400
jb 0x404a7c
mov eax, edi
and eax, 0x1fff
je 0x404a81
mov dword [esi + 4], edx
mov edx, ecx
mov ecx, 0x2000
sub ecx, eax
add edi, ecx
mov ecx, edx
mov edx, dword [esi + 4]
setb al
test al, 1
je 0x404a81
mov edi, 0x2000
test edx, edx
mov dword [esi + 0x1a4], ecx
sete al
or al, byte [esi + 0x28]
cmp al, 1
jne 0x404ade
mov eax, ecx
mov edx, ecx
sub eax, ebx
cmp eax, 0x20
jae 0x404ae0
lea eax, [esi + 0x34]
mov dword [esi + 0x58], edi
mov dword [esi + 0x270], 0x37
lea ecx, [esi + 0x60]
lea edx, [esi + 0x150]
push eax
call fcn.00426da0
pop eax
mov al, byte [esi + 0x60]
cmp al, 4
jne 0x404fb3
cmp dword [esi + 0x64], 0
je 0x404d43
mov edx, dword [esi + 0x34]
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x58]
jmp 0x404ae0
mov edx, ecx
mov dword [esi + 4], 0
lea ecx, [esi + 0x60]
cmp ebx, edx
mov dword [esi + 0x58], edi
jne 0x404b31
cmp edx, dword [esi + 0x1a4]
jne 0x404b31
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x37
lea edx, [esi + 0x150]
push eax
call fcn.00426da0
pop eax
mov al, byte [esi + 0x60]
cmp al, 4
jne 0x404fb3
cmp dword [esi + 0x64], 0
je 0x404d43
mov edx, dword [esi + 0x34]
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x58]
cmp ebx, edx
jne 0x404bbb
mov edi, edx
add edi, 0x20
jb 0x4048ce
lea eax, [edx + edx]
mov dword [esi + 0xdc], edx
cmp eax, edi
cmova edi, eax
test edx, edx
je 0x404b64
mov eax, dword [esi + 0x38]
mov dword [esi + 0x60], eax
xor eax, eax
mov dword [esi + 0x68], edx
inc eax
jmp 0x404b66
xor eax, eax
mov edx, edi
mov dword [esi + 0x64], eax
lea eax, [esi + 0x60]
lea ecx, [esi + 0xe0]
not edx
shr edx, 0x1f
push eax
push edi
call fcn.004211a0
pop eax
pop ecx
cmp dword [esi + 0xe0], 0
mov eax, dword [esi + 0xe4]
je 0x404ba6
mov edi, dword [esi + 0x58]
mov edx, dword [esi + 0xdc]
cmp eax, 0x80000001
je 0x404bbb
jmp 0x4048ce
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], edi
mov edx, edi
mov edi, dword [esi + 0x58]
mov dword [esi + 0x270], 0x37
mov eax, dword [esi + 0x38]
mov dword [esi + 0xdc], edx
sub edx, ebx
mov dword [esi + 0x148], ebx
mov dword [esi + 0x270], 0x37
lea ecx, [esi + 0xe0]
add eax, ebx
cmp edx, edi
mov dword [esi + 0x60], eax
mov eax, dword [esi + 4]
cmovae edx, edi
mov dword [esi + 0x64], edx
mov dword [esi + 0x228], edx
and dword [esi + 0x68], 0
mov edx, dword [esi + 8]
mov dword [esi + 0x6c], eax
lea eax, [esi + 0x60]
push eax
call fcn.004263c0
pop eax
mov al, byte [esi + 0xe0]
cmp al, 4
je 0x404cb2
movzx eax, al
mov eax, dword [eax*4 + 0x406bd0]
add eax, dword [esi + 0x22c]
jmp eax
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 0x148]
mov edi, dword [esi + 0x58]
mov eax, edx
sub eax, ecx
mov dword [esi + 4], eax
jb 0x406212
mov eax, dword [esi + 0x64]
cmp edx, eax
ja 0x4061fe
test ecx, ecx
je 0x404d43
add ebx, ecx
cmp byte [esi + 0x28], 0
mov dword [esi + 0x3c], ebx
je 0x404d10
mov eax, dword [esi + 0x228]
cmp edx, eax
mov edx, eax
mov eax, 0xffffffff
cmovne edi, eax
cmp ecx, edx
lea ecx, [esi + 0x60]
jne 0x404d13
cmp edx, edi
mov edx, dword [esi + 0xdc]
jae 0x404d1e
jmp 0x404aea
lea ecx, [esi + 0x60]
mov edx, dword [esi + 0xdc]
jmp 0x404aea
test edi, edi
lea eax, [edi + edi]
mov ecx, 0xffffffff
cmovs eax, ecx
mov edi, eax
jmp 0x404ae7
mov ecx, dword [esi + 0x30]
mov edx, 0x2000
call fcn.0040158d
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
cmp eax, 0x80000000
je 0x404915
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1ac], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x1b0], edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x270], 0x2b
mov dword [esi + 0x1b4], ecx
lea ecx, [esi + 0x60]
mov dword [ecx], str._nPress_ENTER_to_patch..._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
call fcn.00428d50
and dword [esi + 0x60], 0
mov dword [esi + 0x64], 1
and dword [esi + 0x68], 0
lea eax, [esi + 0x60]
mov dword [esi + 0x270], 0x34
lea edx, [0x49fa14]
lea ecx, [esi + 0xe0]
push eax
call fcn.00428de0
pop eax
lea ecx, [esi + 0xe0]
call fcn.00401863
lea edi, [esi + 0x60]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
call fcn.00417311
mov dword [edi], str.Would_you_like_to_allow_players_to_build_Siege_Camps_outside_their_estate__n
mov dword [edi + 4], 1
and dword [edi + 0x10], 0
mov dword [edi + 8], 0x4945c8
and dword [edi + 0xc], 0
mov ecx, edi
mov dword [esi + 0x270], 0x2b
call fcn.0042a770
lea ecx, [esi + 0x60]
mov dword [ecx], str.This_is_somewhat_abuseable__which_is_why_I_suspect_its_disabled_in_multiplayer_by_default._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
lea ecx, [esi + 0x60]
mov dword [ecx], str.If_disabled__AI_will_still_be_able_to_siege__they_will_build_Siege_Camps_inside_their_own_estates._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
lea ecx, [esi + 0x60]
mov dword [ecx], str._Y_N_:
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
call fcn.00429660
lea eax, [0x49fa3c]
lea edx, [esi + 0xe0]
lea ecx, [esi + 0x60]
mov dword [edx], eax
call fcn.004296f0
lea ecx, [esi + 0x60]
call fcn.00401863
and dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 1
and dword [esi + 0xe8], 0
mov dword [esi + 0x270], 0x33
call fcn.00428d50
lea eax, [esi + 0xe0]
lea ecx, [esi + 0x60]
lea edx, [0x49fa14]
push eax
call fcn.00428de0
pop eax
lea ecx, [esi + 0x60]
call fcn.00401863
mov ebx, dword [esi + 0xe4]
mov edi, dword [esi + 0xe8]
mov ecx, ebx
mov edx, edi
call fcn.0040159a
mov ecx, ebx
mov edx, edi
mov dword [esi + 8], ebx
call fcn.0041dfc9
mov edi, eax
mov ebx, edx
mov ecx, eax
push 1
push str.yInvalid_option__please_enter_Y_or_N:
call fcn.0041df36
pop ecx
pop edx
test al, al
mov byte [esi + 4], al
jne 0x404fe4
mov ecx, edi
mov edx, ebx
push 1
push 0x46d49b
call fcn.0041df36
pop ecx
pop edx
test al, al
jne 0x404fe4
mov dword [esi + 0x60], 0x45b844
mov dword [esi + 0x64], 1
and dword [esi + 0x70], 0
mov dword [esi + 0x68], 0x4945c8
and dword [esi + 0x6c], 0
lea ecx, [esi + 0x60]
call fcn.0042a770
call fcn.00429660
lea eax, [0x49fa3c]
lea ecx, [esi + 0x60]
lea edx, [esi + 0x34]
mov dword [esi + 0x34], eax
call fcn.004296f0
lea ecx, [esi + 0x60]
call fcn.00401863
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 8]
call fcn.00417311
jmp 0x404ebb
movzx ecx, word [esi + 0x62]
mov edi, dword [esi + 0x64]
mov dh, byte [esi + 0x61]
mov dl, al
mov dword [esi + 0x2c], edx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], edi
jmp 0x4048d1
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 8]
call fcn.00417311
lea ecx, [esi + 0x60]
mov dword [esi + 0x270], 0x2b
mov dword [ecx], 0x46f9cc
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
lea ecx, [esi + 0x60]
mov dword [ecx], str.Patching_selecting_AI_for_multiplayer_kingmaker..._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x60]
push 0x52
push str.8D_4D_B0_C7_45___________FF_15_________C6_86___________88_9E_________88_9E________
push dword [esi + 0x10]
call fcn.00401b9f
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x40547f
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
jmp 0x40557a
mov edx, dword [esi + 0x1ac]
mov edi, dword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1b4]
movsd xmm1, qword [esi + 0x1bc]
lea ecx, [esi + 0xe0]
mov dword [esi + 0x10], eax
mov dword [esi + 0x270], 0x13
movsd qword [esi + 0x40], xmm0
movsd qword [esi + 0x48], xmm1
mov dword [esi + 0x34], eax
mov dword [esi + 8], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x28], edx
mov dword [esi + 0x38], edx
call fcn.00440fdc
mov edx, dword [esi + 0x4c]
test edx, edx
mov dword [esi + 4], edx
je 0x405461
xor ecx, ecx
inc ecx
push 0x1c
push 1
call fcn.004414c9
pop ecx
pop edx
test al, al
je 0x405d5e
push 0x16
pop eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x28]
mov dword [esi + 0xc], eax
call fcn.00411da6
mov al, 1
mov ebx, 0x80000001
mov dword [esi + 0x28], 0
mov dword [esi + 0x10], eax
jmp 0x40546f
mov edx, dword [esi + 0x1ac]
mov edi, dword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1b4]
movsd xmm1, qword [esi + 0x1bc]
lea ecx, [esi + 0xe0]
mov dword [esi + 0x10], eax
mov dword [esi + 0x270], 0xa
movsd qword [esi + 0x40], xmm0
movsd qword [esi + 0x48], xmm1
mov dword [esi + 0x34], eax
mov dword [esi + 8], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x28], edx
mov dword [esi + 0x38], edx
call fcn.00440fdc
mov edx, dword [esi + 0x4c]
test edx, edx
mov dword [esi + 4], edx
je 0x405461
xor ecx, ecx
inc ecx
push 4
push 1
call fcn.004414c9
pop ecx
pop edx
test al, al
je 0x405d5e
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x28]
call fcn.00411da6
mov ebx, 0x80000001
mov al, 1
mov dword [esi + 0x28], 0
mov dword [esi + 0x10], eax
push 0x16
pop eax
jmp 0x40546c
mov edi, 0x45bb7c
mov dword [esi + 8], 0
push 0x5d
pop ecx
lea eax, [esi + 0x238]
mov edx, fcn.0040bcb0
mov dword [esi + 4], ebx
mov dword [esi + 0x230], ebx
mov dword [esi + 0x234], edi
mov dword [esi + 0x270], 0xc
mov dword [eax], edi
mov dword [eax + 4], ecx
lea ecx, [esi + 0x188]
mov dword [esi + 0x60], ecx
and dword [ecx + 4], 0
mov dword [ecx], 0x7d0
lea ecx, [esi + 0x210]
mov dword [esi + 0x64], edx
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], eax
lea edx, [esi + 0x150]
lea eax, [esi + 0x60]
and dword [ecx + 4], 0
mov dword [ecx], 2
lea ecx, [esi + 0x190]
mov dword [esi + 0x74], 0x440c47
mov dword [edx], 0x4718e0
mov dword [edx + 4], 4
and dword [edx + 0x10], 0
mov dword [edx + 8], eax
mov eax, dword [esi + 8]
mov dword [edx + 0xc], 3
mov dword [esi + 8], edi
mov byte [esi + 0x5f], al
call fcn.00441464
cmp dword [esi + 0xc], 0
je 0x405255
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
call fcn.00411da6
lea ecx, [esi + 0xe0]
lea edx, [esi + 0x190]
mov dword [esi + 0x270], 0xb
call fcn.00440a4c
lea ecx, [esi + 0x1a8]
lea edx, [esi + 0xe0]
call fcn.004354e0
mov eax, dword [esi + 0x1a8]
cmp eax, 0x80000000
jne 0x4052cf
mov ebx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x1b0]
or dword [esi + 0x270], 0xffffffff
lea ecx, [esi + 0xe0]
mov edi, ebx
mov dword [esi + 0x28], eax
shr edi, 8
call fcn.00440fdc
mov eax, edi
mov edi, dword [esi + 0x28]
mov edx, ebx
mov dword [esi + 0x270], 0x14
mov ebx, 0x80000001
jmp 0x40303d
mov edx, dword [esi + 0x1ac]
mov edi, dword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1b4]
movsd xmm1, qword [esi + 0x1bc]
lea ecx, [esi + 0xe0]
mov dword [esi + 0x10], eax
mov dword [esi + 0x270], 0xe
movsd qword [esi + 0x40], xmm0
movsd qword [esi + 0x48], xmm1
mov dword [esi + 0x34], eax
mov dword [esi + 8], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x28], edx
mov dword [esi + 0x38], edx
call fcn.00440fdc
mov ecx, dword [esi + 8]
cmp ecx, 1
jbe 0x405336
mov eax, dword [esi + 0x28]
cmp word [eax + ecx - 2], 0xa0d
jne 0x405336
add ecx, 0xfffffffe
mov dword [esi + 0x3c], ecx
mov eax, dword [esi + 0x4c]
mov dword [esi + 8], ecx
test eax, eax
mov dword [esi + 4], eax
je 0x4054ad
mov eax, dword [esi + 0x44]
lea ecx, [esi + 0xe0]
mov ebx, dword [esi + 0x48]
xor edi, edi
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
mov dword [esi + 0xc], eax
push 0xa
pop ecx
cmp ebx, 8
jae 0x405379
mov edx, dword [esi + 0xc]
push ebx
call fcn.00440a28
jmp 0x405382
mov edx, dword [esi + 0xc]
push ebx
call fcn.0040b2e0
pop ecx
test eax, eax
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], edi
mov dword [esi + 0x30], eax
je 0x4053dc
cmp edx, 0xffffffff
mov dword [esi + 0x270], 0x10
je 0x4061ef
lea ecx, [edx + 1]
mov dword [esi + 0x58], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
push 0x4713b0
push ebx
call fcn.0040f579
pop ecx
pop edi
mov edi, edx
lea ecx, [esi + 0xe0]
mov edx, eax
push edi
call fcn.00441750
mov ebx, dword [esi + 0x20]
add esp, 4
cmp ebx, dword [esi + 0x58]
ja 0x4053fe
jmp 0x4061da
mov edx, dword [esi + 0xc]
mov dword [esi + 0x270], 0x10
lea ecx, [esi + 0xe0]
push ebx
call fcn.00441750
mov ebx, dword [esi + 0x20]
add esp, 4
mov dword [esi + 0x2c], ebx
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x2c]
add edi, eax
cmp dword [esi + 0x30], 0
jne 0x405419
add dword [esi + 0xc], eax
sub ebx, eax
test eax, eax
jne 0x405366
mov dword [esi + 0x18], edi
mov ebx, dword [esi + 0xe4]
mov edi, dword [esi + 0xe8]
lea ecx, [esi + 0x60]
mov edx, ebx
push edi
call fcn.004096d0
lea ecx, [esi + 0x60]
add esp, 4
cmp dword [ecx], 0
mov eax, 0x80000000
je 0x4054c2
mov ecx, dword [esi + 0xe0]
mov edx, ebx
mov edi, eax
call fcn.00411da6
mov ecx, edi
mov eax, 0x4713e4
push 2
pop edi
jmp 0x405534
mov eax, dword [esi + 0x10]
mov ebx, 0x80000004
shr eax, 8
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
call fcn.00411da6
jmp 0x405d7c
cmp dword [esi + 0x64], 0
je 0x405564
mov edx, dword [esi + 0x68]
lea ecx, [esi + 0x1a8]
add edx, 0x23
push 7
push 0x45baa2
call fcn.00401f8c
pop ecx
pop edi
mov ecx, 0x45b4a8
jmp 0x405576
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
call fcn.00411da6
mov ebx, 0x80000004
jmp 0x405d73
cmp dword [esi + 0x18], 0
mov dword [esi + 0xe8], edi
je 0x405be0
mov eax, ecx
mov dword [esi + 0x60], 0xa
mov ecx, ebx
mov edx, edi
push 1
mov ebx, eax
push eax
call fcn.0040f5bb
pop ecx
pop edx
test al, al
je 0x405522
lea edi, [esi + 0xe0]
mov ecx, edi
call fcn.00440d32
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esi + 0x60], 0xd
push 1
push ebx
call fcn.0040f5bb
pop ecx
pop edx
test al, al
je 0x405522
lea ecx, [esi + 0xe0]
call fcn.00440d32
mov ecx, dword [esi + 0xe0]
mov edi, dword [esi + 0xe4]
mov eax, dword [esi + 0xe8]
cmp ecx, 0x80000001
je 0x405d5e
cmp ecx, 0x80000000
jne 0x405660
mov ecx, edi
mov edx, eax
mov dword [esi + 0x270], 0xe
call fcn.00439df7
jmp 0x405d5e
push 0x13
pop edx
mov ecx, str.signature_not_found89_7D_08_89_7D_D8_89_7D_E4_83_7D_0C_46_75_2F_80_3D___________74_26
call fcn.00407310
mov ecx, 0x45c3b4
test eax, eax
je 0x4055db
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x60]
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x32
mov dword [ecx], str.Failed:_8
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x401a90
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov dword [esi + 0x270], 0x2b
call fcn.0040149e
cmp byte [esi + 4], 0
je 0x405746
lea ecx, [esi + 0x60]
mov dword [ecx], str.Patching_Siege_Camp_building_outside_your_estate..._nP
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x60]
push 0x42
push 0x45ba06
push dword [esi + 0x10]
call fcn.00401b9f
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x405632
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
jmp 0x4056e5
cmp dword [esi + 0x64], 0
je 0x4056cf
mov edx, dword [esi + 0x68]
lea ecx, [esi + 0x1a8]
add edx, 0xf
push 8
push 0x45ba48
call fcn.00401f8c
pop ecx
pop edi
mov ecx, 0x45b4a8
jmp 0x4056e1
cmp eax, 0x1b
mov dword [esi + 0x18], ecx
jbe 0x405bc8
mov dword [esi + 0x270], 0xf
lea ecx, [esi + 0x60]
mov dword [esi + 0x58], edi
mov edx, edi
push 0x1b
push str.The_operation_has_timed_out_g_m_L
push eax
call fcn.0040b4a0
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x405bea
lea edx, [esi + 0x68]
lea ecx, [esi + 0xe0]
mov eax, dword [edx + 0x28]
cmp dword [edx + 0x1c], 0xffffffff
mov edi, dword [edx + 0x2c]
mov ebx, dword [edx + 0x30]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x34]
je 0x405d01
push 0
push eax
push ebx
push edi
push dword [esi + 0xc]
call fcn.0040160b
add esp, 0x14
jmp 0x405d2f
push 0x13
pop edx
mov ecx, str.signature_not_found89_7D_08_89_7D_D8_89_7D_E4_83_7D_0C_46_75_2F_80_3D___________74_26
call fcn.00407310
mov ecx, 0x45c3b4
test eax, eax
je 0x405746
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x60]
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x31
mov dword [ecx], str.Failed:_8
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x401a90
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov dword [esi + 0x270], 0x2b
call fcn.0040149e
lea ecx, [esi + 0x60]
mov dword [ecx], str.Patching_AI_siege_scheduling..._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x60]
push 0x66
push str.55_8B_EC_83_EC_1C_56_8B_F1_80_BE___________57_0F_85_________80_3D_________00_0F_85_________8B_4E_28_B8
push dword [esi + 0x10]
call fcn.00401b9f
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x405790
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
jmp 0x4057cd
cmp dword [esi + 0x64], 0
je 0x4057b7
mov edx, dword [esi + 0x68]
lea ecx, [esi + 0x1a8]
add edx, 0x17
push 0xd
push 0x45b9e6
call fcn.00401f8c
pop ecx
pop edi
mov ecx, 0x45b4a8
jmp 0x4057c9
push 0x13
pop edx
mov ecx, str.signature_not_found89_7D_08_89_7D_D8_89_7D_E4_83_7D_0C_46_75_2F_80_3D___________74_26
call fcn.00407310
mov ecx, 0x45c3b4
test eax, eax
je 0x40582e
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x60]
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x30
mov dword [ecx], str._1__Failed:
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x401a90
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov dword [esi + 0x270], 0x2b
call fcn.0040149e
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x60]
push 0x59
push str.80_BF___________74_10_8B_87_________3B_87_________72_02_33_DB_80_3D___________74_02_33_D2
push dword [esi + 0x10]
call fcn.00401b9f
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x405854
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
jmp 0x405891
cmp dword [esi + 0x64], 0
je 0x40587b
mov edx, dword [esi + 0x68]
lea ecx, [esi + 0x1a8]
add edx, 0x22
push 2
push 0x45bb02
call fcn.00401f8c
pop ecx
pop edi
mov ecx, 0x45b4a8
jmp 0x40588d
push 0x13
pop edx
mov ecx, str.signature_not_found89_7D_08_89_7D_D8_89_7D_E4_83_7D_0C_46_75_2F_80_3D___________74_26
call fcn.00407310
mov ecx, 0x45c3b4
test eax, eax
je 0x4058f2
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x60]
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x2f
mov dword [ecx], str._2__Failed:
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x401a90
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov dword [esi + 0x270], 0x2b
call fcn.0040149e
lea ecx, [esi + 0x60]
mov dword [ecx], str.Patching_multiplayer_button_text..._n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x60]
push 0x2b
push str.68_74_77_95_00_8D_85_________68_C0_BB_9D_00Multiplayer__Ultimate_AI_Patch_srcpatch.rsinvalid_signature
push dword [esi + 0x10]
call fcn.00401b9f
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x4059dd
mov edi, dword [esi + 0x64]
mov eax, dword [esi + 0x68]
lea ecx, [esi + 0x60]
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], eax
lea eax, [esi + 0x34]
mov dword [esi + 0x270], 0x2c
mov dword [ecx], str.Failed:_8
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0xe0], eax
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x401a90
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
call fcn.0042aa30
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov dword [esi + 0x270], 0x2b
call fcn.0040149e
lea ecx, [esi + 0x60]
mov dword [ecx], str._nDone__n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
lea ecx, [esi + 0x1a8]
mov dword [esi + 0x270], 0x29
call fcn.00401508
jmp 0x404989
cmp dword [esi + 0x64], 0
je 0x405af3
mov eax, dword [esi + 0x68]
lea ecx, [esi + 0xe0]
mov dword [ecx], 1
and dword [ecx + 4], 0
mov dword [ecx + 8], 2
and word [ecx + 0xc], 0
and dword [ecx + 0x10], 0
and dword [ecx + 0x20], 0
mov dword [ecx + 0x30], 0x45bb2f
mov dword [esi + 0x10], eax
lea eax, [0x45bb4e]
mov dword [ecx + 0x34], eax
and word [ecx + 0x38], 0
call section..text
test al, 1
je 0x405b0c
lea edi, [esi + 0x60]
mov byte [esi + 8], dl
lea edx, [esi + 0xe0]
mov ecx, edi
call fcn.004010be
mov eax, dword [edi]
xor ecx, ecx
dec ecx
inc eax
cmove eax, ecx
cmp eax, 9
push 8
pop ecx
cmovae ecx, eax
call fcn.00441780
mov cl, byte [esi + 8]
mov ebx, edx
mov byte [edx], cl
lea ecx, [esi + 0x150]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 1
push 0x3c
lea eax, [esi + 0xe0]
push eax
lea edi, [esi + 0x60]
push edi
call fcn.0044ac50
add esp, 0xc
xor eax, eax
inc eax
mov dword [esi + 8], eax
mov ecx, edi
call section..text
test al, 1
je 0x405b1a
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x150]
jne 0x405ae4
mov byte [esi + 4], dl
lea ecx, [esi + 0x34]
mov edx, edi
call fcn.004010be
mov edx, dword [esi + 0x34]
mov eax, 0xffffffff
lea ecx, [esi + 0x150]
mov dword [esi + 0x270], 0x2e
inc edx
cmove edx, eax
call fcn.00416ce9
mov ebx, dword [esi + 0x154]
mov eax, dword [esi + 8]
mov dl, byte [esi + 4]
lea edi, [esi + 0x60]
mov byte [ebx + eax], dl
inc eax
mov dword [esi + 8], eax
mov dword [esi + 0x158], eax
jmp 0x405a91
push 0x13
pop edx
mov ecx, str.signature_not_found89_7D_08_89_7D_D8_89_7D_E4_83_7D_0C_46_75_2F_80_3D___________74_26
call fcn.00407310
mov edi, eax
mov eax, 0x45c3b4
jmp 0x40593e
xor ebx, ebx
mov dword [esi + 4], 0
xor eax, eax
inc ebx
jmp 0x405b30
mov eax, dword [esi + 0x150]
mov dword [esi + 0x270], 0x2d
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
mov dword [esi + 8], ebx
mov dword [esi + 0x270], 0x2d
lea ecx, [esi + 0x1a8]
mov edx, 0x2a5c38
push eax
push ebx
call fcn.00401f8c
pop ecx
pop edi
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov edi, eax
call fcn.00417311
mov eax, 0x45b4a8
test edi, edi
jne 0x40593e
mov eax, dword [esi + 0x10]
mov dword [esi + 0x60], 0x6a6838
mov dword [esi + 0x270], 0x2b
lea ecx, [esi + 0x1a8]
lea edx, [eax + 1]
push 4
lea eax, [esi + 0x60]
push eax
call fcn.00401f8c
pop ecx
pop edi
mov edi, eax
test eax, eax
jne 0x405bbe
mov edx, dword [esi + 0x10]
lea ecx, [esi + 0x1a8]
add edx, 0xc
push 4
lea eax, [esi + 0x60]
push eax
call fcn.00401f8c
pop ecx
pop edi
mov edi, eax
test eax, eax
je 0x40599f
mov eax, 0x45b4a8
jmp 0x40593e
push 0x1b
pop edx
mov ecx, str.The_operation_has_timed_out_g_m_L
push eax
push edi
call fcn.0041df36
pop ecx
pop edx
mov ebx, eax
jmp 0x405d3c
mov eax, 0x80000001
jmp 0x405443
mov al, byte [esi + 0x6e]
mov ecx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
mov bl, byte [esi + 0x6c]
mov byte [esi + 0x30], al
mov eax, dword [esi + 0x64]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0xdc], edi
cmp byte [esi + 0x30], 0
jne 0x405d13
test eax, eax
mov edx, edi
je 0x405c32
mov edx, edi
sub edx, eax
jbe 0x405c2c
cmp byte [ecx + eax], 0xbf
jg 0x405c32
jmp 0x40628b
jne 0x40628b
test edx, edx
mov dword [esi + 0x20], 0
je 0x405d1c
mov dl, byte [ecx + eax]
mov byte [esi + 0xc], bl
movzx ebx, dl
test dl, dl
jns 0x405cc3
movzx edi, byte [ecx + eax + 1]
and ebx, 0x1f
and edi, 0x3f
cmp dl, 0xdf
jbe 0x405ca1
mov dword [esi + 0x148], eax
movzx eax, byte [ecx + eax + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp dl, 0xf0
mov dword [esi + 0x178], eax
jb 0x405cae
mov eax, dword [esi + 0x148]
and ebx, 7
shl ebx, 0x12
movzx edi, byte [ecx + eax + 3]
mov ecx, eax
mov eax, dword [esi + 0x178]
shl eax, 6
and edi, 0x3f
or edi, eax
mov eax, ecx
jmp 0x405ca4
shl ebx, 6
or ebx, edi
mov edi, dword [esi + 0xdc]
jmp 0x405cc3
shl ebx, 0xc
mov edi, dword [esi + 0xdc]
mov eax, dword [esi + 0x148]
add ebx, dword [esi + 0x178]
xor edx, edx
inc edx
cmp byte [esi + 0xc], 0
jne 0x405d20
cmp ebx, 0x110000
je 0x405d26
cmp ebx, 0x80
mov ecx, edx
jb 0x405cf5
cmp ebx, 0x800
push 2
pop ecx
jb 0x405cf5
cmp ebx, 0x10000
push 4
pop ecx
sbb ecx, 0
add eax, ecx
mov ecx, dword [esi + 0x2c]
mov bl, 1
jmp 0x405c0b
push 1
push eax
push ebx
push edi
push dword [esi + 0xc]
call fcn.0040160b
add esp, 0x14
jmp 0x405d2f
mov dword [esi + 0x20], 0
jmp 0x405d26
test bl, bl
je 0x405d26
xor eax, eax
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0xe0], eax
cmp dword [esi + 0xe0], 0
mov edi, dword [esi + 0x58]
setne bl
mov ecx, dword [esi + 0x18]
mov edx, edi
call fcn.00411da6
test bl, bl
je 0x405d5e
lea ecx, [esi + 0x34]
call fcn.00411348
xor edi, edi
mov dl, 1
push 0x16
pop eax
jmp 0x4052bb
mov ebx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x180], ecx
mov dword [esi + 0x17c], eax
mov eax, dword [esi + 0x10]
shr eax, 8
mov dword [esi + 0xc], eax
cmp ebx, 0x80000004
jne 0x405da2
mov ecx, dword [esi + 0xc]
movzx eax, byte [esi + 0x10]
shl ecx, 8
or eax, ecx
cmp eax, 0x80000000
jne 0x405db0
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 8]
jmp 0x4030aa
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0xc]
jmp 0x40303d
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 8]
mov dword [esi + 0x18], eax
lea ecx, [esi + 0x60]
mov edx, ebx
push edi
call fcn.004096d0
pop eax
lea eax, [esi + 0x60]
cmp dword [eax], 0
je 0x405e14
mov eax, dword [esi + 0x64]
mov dword [esi + 0x270], 0x15
mov dword [esi + 4], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0xc], eax
push 0x14
pop ecx
call fcn.004019d0
mov ecx, dword [esi + 0x18]
mov edi, eax
mov dword [eax], ecx
mov ecx, dword [esi + 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x10], ecx
mov ecx, 0x45b46c
jmp 0x4030aa
mov dword [esi + 0x270], 0x16
lea ecx, [esi + 0x60]
mov edx, ebx
push 0xd
push 0x45bbd9
push edi
call fcn.0040b4a0
add esp, 0xc
cmp dword [esi + 0x60], 0
je 0x405e70
lea edx, [esi + 0x68]
lea ecx, [esi + 0xe0]
mov eax, dword [edx + 0x28]
cmp dword [edx + 0x1c], 0xffffffff
mov edi, dword [edx + 0x2c]
mov ebx, dword [edx + 0x30]
mov dword [esi + 4], eax
mov eax, dword [edx + 0x34]
je 0x405f0c
push 0
push eax
push ebx
push edi
push dword [esi + 4]
call fcn.0040160b
add esp, 0x14
jmp 0x405f1c
mov eax, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov bl, byte [esi + 0x6e]
mov ecx, dword [esi + 0x64]
mov bh, byte [esi + 0x6c]
mov dword [esi + 0xc], eax
mov dword [esi + 4], edx
test bl, bl
jne 0x405f00
mov edx, dword [esi + 0xc]
mov edi, ecx
push dword [esi + 4]
call fcn.004015b7
pop ecx
test eax, eax
je 0x40626a
lea ecx, [esi + 0x1a8]
add edx, eax
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1ac], edx
call fcn.004421b2
test eax, eax
mov ecx, 0x110000
cmove edx, ecx
test bh, bh
jne 0x405f3f
cmp edx, 0x110000
je 0x405f00
cmp edx, 0x80
mov eax, 1
jb 0x405ef8
cmp edx, 0x800
push 2
pop eax
jb 0x405ef8
cmp edx, 0x10000
push 4
pop eax
sbb eax, 0
mov ecx, edi
mov bh, 1
add ecx, eax
jmp 0x405e8b
mov dword [esi + 0x270], 0x16
jmp 0x405f2d
push 1
push eax
push ebx
push edi
push dword [esi + 4]
call fcn.0040160b
add esp, 0x14
cmp dword [esi + 0xe0], 0
je 0x405f2d
mov edi, dword [esi + 0xe4]
jmp 0x405f49
push 0x22
pop edx
mov ecx, 0x45bbe6
call fcn.00407310
jmp 0x40607d
mov dword [esi + 0x270], 0x16
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x28]
add edi, 0xd
push 0x45bc18
mov dword [esi + 0x20], edi
push edi
call fcn.0040113f
pop ecx
pop edi
mov ebx, edx
lea edx, [esi + 0x78]
mov dword [edx - 0x14], eax
mov dword [edx - 0x10], ebx
and dword [edx - 0xc], 0
mov dword [edx - 8], ebx
push 0x22
pop edi
mov dword [edx - 0x18], edi
mov dword [edx - 4], 1
mov dword [edx], edi
xor edi, edi
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
lea edx, [eax + edi]
mov dword [esi + 4], edi
sub ebx, edi
mov edi, 0
mov ecx, edx
cmovb ecx, edi
jb 0x406066
cmp ebx, 7
ja 0x405fb9
xor eax, eax
xor edx, edx
cmp ebx, edx
je 0x405fcc
cmp byte [ecx + edx], 0x22
je 0x405fc7
inc edx
jmp 0x405fac
push 0x22
pop ecx
push ebx
call fcn.0040b2e0
pop ecx
mov ebx, edx
jmp 0x405fcc
xor eax, eax
mov ebx, edx
inc eax
cmp eax, 1
mov eax, dword [esi + 0xc]
jne 0x406066
add ebx, dword [esi + 4]
mov edi, ebx
mov ecx, ebx
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x10]
inc edi
mov dword [esi + 0x6c], edi
je 0x405f8b
cmp edi, ebx
ja 0x405f8b
mov ecx, dword [esi + 4]
xor edx, edx
inc edx
add ecx, eax
push 1
lea eax, [esi + 0x78]
push eax
call fcn.0041df36
mov ebx, dword [esi + 0x10]
add esp, 8
test al, al
mov eax, dword [esi + 0xc]
je 0x405f8b
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x270], 0x16
push 0x45bc48
push dword [esi + 0x20]
call fcn.0040113f
pop ecx
pop edi
mov ecx, eax
push 0x45bc58
push dword [esi + 4]
call fcn.004015e4
pop ecx
pop edi
mov dword [esi + 4], eax
mov dword [esi + 8], edx
mov ecx, dword [esi + 8]
call fcn.00441780
mov ebx, eax
mov edi, edx
push dword [esi + 8]
push dword [esi + 4]
push edx
call fcn.0044ac50
add esp, 0xc
jmp 0x40608b
mov dword [esi + 0x270], 0x16
push 0x1d
pop edx
mov ecx, 0x45bc28
call fcn.00407310
mov edi, eax
mov ebx, 0x80000000
mov dword [esi + 8], 0x45c3b4
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
call fcn.00417311
cmp ebx, 0x80000000
jne 0x4060a6
mov ecx, dword [esi + 8]
jmp 0x4030b4
mov edx, dword [esi + 8]
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xe4], edi
mov ecx, edi
mov dword [esi + 0xe8], edx
push 5
push str.0.1.0Stronghold_2_Ultimate_Multiplayer_AI_Patch_is_up_to_date__n_n_
call fcn.0041df36
pop ecx
pop edx
test al, al
je 0x4060ff
lea ecx, [esi + 0x60]
mov dword [esi + 0x270], 0x17
mov dword [ecx], 0x45bf60
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042a770
jmp 0x406165
lea ecx, [esi + 0x60]
lea eax, [esi + 0xe0]
lea edx, [esi + 0x1a8]
mov dword [esi + 0x270], 0x17
mov dword [ecx], str._nStronghold_2_Ultimate_Multiplayer_AI_Patch_is_outdated__The_latest_version_is_vh
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [edx], eax
mov dword [ecx + 8], edx
mov dword [edx + 4], 0x4019ed
mov dword [ecx + 0xc], 1
call fcn.0042aa30
lea ecx, [esi + 0x60]
mov dword [ecx], str.You_can_download_the_new_version_from_https:__github.com_WilliamVenner_stronghold2_ultimate_multiplayer_ai_patch_releases_n_n
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4945c8
and dword [ecx + 0xc], 0
call fcn.0042aa30
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 0xe4]
call fcn.00417311
jmp 0x403113
or dword [esi + 0x270], 0xffffffff
push 0x2c
pop edx
mov ecx, str.overflow_when_multiplying_duration_by_scalar
push 0x4715b4
call fcn.00458ad0
or dword [esi + 0x270], 0xffffffff
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codeC:Users_runneradmin.cargo_registry_srcindex.crates.io_1cd66030c949c28d_sysreq_0.1.6_srcclients_resolve.rs
push 0x471734
call fcn.004587c0
xor ecx, ecx
inc ecx
push 0xf
pop edx
call fcn.00458570
jmp 0x4062a6
mov eax, dword [esi + 0x18]
mov dword [esi + 0x270], 0x3f
mov dword [esi + 0x184], eax
call fcn.00407240
jmp 0x4062a6
mov ecx, dword [esi + 0x2c]
mov edx, ebx
push 0x47143c
call fcn.004586a0
pop eax
jmp 0x4062a6
mov ecx, 0x4713b0
call fcn.00458c30
jmp 0x4062a6
mov ecx, edx
mov edx, eax
push 0x470f44
call fcn.00458760
pop eax
jmp 0x4062a6
push 0x470f44
call fcn.00458980
pop eax
jmp 0x4062a6
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x270], 0x3f
mov edx, ebx
mov dword [esi + 0x184], eax
push 0x46f2dc
call fcn.00458760
pop eax
jmp 0x4062a6
push 0x37
pop edx
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04library_alloc_src_string.rs
push 0x49467c
push 0x4714dc
lea eax, [esi + 0x14c]
push eax
call fcn.00458a30
add esp, 0xc
jmp 0x4062a6
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov dword [esi + 0x270], 0x16
push 0x4715c4
push edx
push edi
call fcn.00458c10
add esp, 0xc
jmp 0x4062a6
mov dword [esi + 0x270], 0xf
mov edx, edi
push 0x4715c4
push edi
push eax
call fcn.00458c10
add esp, 0xc
ud2