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

Disassembly:
push 0xffffffffffffffff
push 0x495c8e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x330
push ebx
push ebp
push esi
mov esi, ecx
xor edx, edx
push edi
mov eax, dword [esi + 0x460]
mov dword [esp + 0x14], edx
cmp eax, edx
jne 0x4352c9
mov edi, dword [esp + 0x358]
mov eax, dword [esi + 0x54]
mov ebx, dword [esp + 0x350]
mov ebp, edi
shr ebp, 0xe
and ebp, 1
mov dword [esi + 0x230], edx
cmp eax, edx
mov dword [esp + 0x44], ebp
mov dword [esi + 0x5c], ebx
jne 0x4352c9
cmp dword [esi + 0x3d4], edx
je 0x43513a
mov eax, dword [esi + 0x210]
cmp ebx, 0x26
mov ecx, eax
je 0x4350cd
cmp ebx, 0x25
jne 0x4350d8
cmp eax, edx
je 0x4350d8
dec eax
mov dword [esi + 0x210], eax
cmp ebx, 0x28
je 0x4350e2
cmp ebx, 0x27
jne 0x4350f4
mov eax, dword [esi + 0x210]
cmp eax, 1
je 0x4350f4
inc eax
mov dword [esi + 0x210], eax
cmp dword [esi + 0x210], ecx
je 0x435115
mov ecx, dword [esi + 0x188]
push 0
call fcn.004202e0
push 0x4ab730
mov ecx, esi
call fcn.004420b0
cmp ebx, 0xd
je 0x43511f
cmp ebx, 0x20
jne 0x43512a
test ebp, ebp
jne 0x43512a
mov ecx, esi
call fcn.00436a10
cmp ebx, 0x1b
jne 0x4352c9
push 0
jmp 0x4352c2
mov eax, dword [esi + 0xd30]
cmp eax, 0xb
ja case.0x435149.5
jmp dword [eax*4 + 0x43686c]
mov edi, dword [esi + 0x184]
mov ebp, dword [esi + 0x210]
push 0x4ad110
mov ecx, edi
call fcn.0041fe40
xor ecx, ecx
cmp eax, ecx
jge 0x435184
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x48]
jmp 0x43518a
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov dword [esp + 0xc8], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0xc8]
mov dword [esp + 0xd4], eax
push ecx
call dword [0x49948c]
test eax, eax
jne 0x4351ff
cmp ebx, 0x26
jne 0x4351d5
mov eax, dword [esi + 0x210]
test eax, eax
je 0x4351f8
dec eax
jmp 0x4351e6
cmp ebx, 0x28
jne 0x4351f8
mov eax, dword [esi + 0x210]
cmp eax, 5
je 0x4351f8
inc eax
push 0x4ab730
mov ecx, esi
mov dword [esi + 0x210], eax
call fcn.004420b0
push 0
jmp 0x435292
cmp ebx, 0x26
je 0x435209
cmp ebx, 0x28
jne 0x435236
mov edx, ebx
mov eax, dword [esi + 0x210]
sub edx, 0x26
mov ecx, dword [esi + 0x184]
neg edx
sbb edx, edx
and edx, 2
dec edx
push edx
push eax
push 0xd
push 0x49a6f4
call fcn.0041fe90
mov dword [esi + 0x210], eax
mov eax, dword [esi + 0x210]
cmp eax, ebp
je 0x43529d
cmp eax, 0xffffffff
je 0x435267
mov ecx, dword [eax*4 + 0x49a6f4]
push ecx
push 0x4ad254
push esi
call fcn.00442320
add esp, 0xc
mov ecx, esi
push 0x4ab730
call fcn.004420b0
cmp ebp, 0xffffffff
je 0x43527f
mov edx, dword [ebp*4 + 0x49a6f4]
mov ecx, dword [esi + 0x184]
push edx
call fcn.004202e0
mov eax, dword [esi + 0x210]
cmp eax, 0xffffffff
je 0x43529d
mov eax, dword [eax*4 + 0x49a6f4]
push eax
mov ecx, dword [esi + 0x184]
call fcn.004202e0
cmp ebx, 0xd
je 0x4352a7
cmp ebx, 0x20
jne case.0x435149.5
mov eax, dword [esp + 0x44]
test eax, eax
jne case.0x435149.5
mov ecx, esi
call fcn.00436a10
cmp dword [esp + 0x350], 0x1b
jne 0x4352c9
push 1
mov ecx, esi
call fcn.00437290
mov ecx, dword [esp + 0x340]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x33c
ret 0xc
mov edi, dword [esi + 0x2ac]
cmp ebx, 0x26
jne 0x435305
cmp edi, edx
je 0x43545f
lea ecx, [edi - 1]
mov dword [esi + 0x2ac], ecx
jmp 0x43545f
cmp ebx, 0x28
jne 0x4353a3
mov edx, dword [0x4aa0d8]
dec edx
cmp edi, edx
je 0x43545f
mov eax, dword [0x4afb38]
mov dword [esp + 0x14], eax
lea eax, [edi + 1]
lea ecx, [esp + 0x14]
cdq
idiv dword [esi + 0x2b0]
mov dword [esp + 0x348], 0
push eax
push 0x4ad210
push ecx
call fcn.00483e7d
mov edx, dword [esi + 0x2ac]
mov eax, dword [esi + 0x2b0]
add esp, 0xc
inc edx
cmp edx, eax
jl 0x435389
mov ecx, dword [esi + 0x194]
push 0x4ad310
call fcn.0041fe40
cmp eax, 0xffffffff
je 0x435389
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x194]
push eax
call fcn.0041fe40
cmp eax, 0xffffffff
je 0x43538f
inc dword [esi + 0x2ac]
mov dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x14]
jmp 0x43545a
cmp ebx, 0x25
jne 0x4353c5
mov eax, dword [esi + 0x2b0]
cmp edi, eax
jl 0x43545f
mov ecx, edi
sub ecx, eax
mov dword [esi + 0x2ac], ecx
jmp 0x43545f
cmp ebx, 0x27
jne 0x43545f
mov ecx, dword [esi + 0x2b0]
mov eax, dword [0x4aa0d8]
lea edx, [ecx + edi]
cmp edx, eax
jge 0x43545f
mov eax, dword [0x4afb38]
mov dword [esp + 0x14], eax
mov eax, edi
mov dword [esp + 0x348], 1
cdq
idiv ecx
lea ecx, [esp + 0x14]
inc eax
push eax
push 0x4ad210
push ecx
call fcn.00483e7d
mov ecx, dword [esi + 0x194]
add esp, 0xc
push 0x4ad310
call fcn.0041fe40
cmp eax, 0xffffffff
je 0x435437
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x194]
push edx
call fcn.0041fe40
cmp eax, 0xffffffff
je 0x43544b
mov eax, dword [esi + 0x2b0]
mov ecx, dword [esi + 0x2ac]
add ecx, eax
mov dword [esi + 0x2ac], ecx
mov dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.0048542a
cmp dword [esi + 0x2ac], edi
je 0x43547a
push 0x4ab730
mov ecx, esi
call fcn.004420b0
mov ecx, esi
call fcn.00429360
cmp ebx, 0xd
je 0x435484
cmp ebx, 0x20
jne 0x43548f
test ebp, ebp
jne 0x43548f
mov ecx, esi
call fcn.00436a10
sub esp, 0x10
mov edx, dword [0x4aa0d0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4aa0d4]
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
call fcn.00402ee0
jmp case.0x435149.5
mov edi, dword [esi + 0x1c]
call dword [0x4994a8]
cmp eax, edi
je case.0x435149.5
cmp ebx, 0x26
je 0x4354e4
cmp ebx, 0x28
je 0x4354e4
cmp ebx, 0x25
je 0x4354e4
cmp ebx, 0x27
jne 0x435be7
lea ecx, [esp + 0x58]
push ecx
call dword [0x4994ac]
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x58]
push edx
push eax
call dword [0x4994b0]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, 0x4ab9b4
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 0
cmp dword [eax], 0
je 0x435597
mov ebp, dword [esp + 0x28]
mov eax, dword [eax]
mov edi, dword [esi + 0x194]
push eax
mov ecx, edi
call fcn.0041fe40
xor ecx, ecx
cmp eax, ecx
jge 0x435556
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x48]
jmp 0x43555c
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
add eax, ecx
mov ecx, dword [esp + 0x5c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jne 0x435582
mov eax, dword [esp + 0x58]
cmp eax, edi
jl 0x435582
cmp eax, ebx
jle 0x435597
mov edi, dword [esp + 0x60]
mov ecx, dword [ebp + 4]
add ebp, 4
inc edi
test ecx, ecx
mov dword [esp + 0x60], edi
mov eax, ebp
jne 0x43552a
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
add eax, edx
mov ecx, dword [eax*4 + 0x4ab9b4]
test ecx, ecx
jne 0x4355e1
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
add eax, 0x14
inc ebp
add ebx, 0x14
add edi, 5
cmp eax, 0x4abdec
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], eax
jl 0x435515
mov eax, dword [esp + 0x350]
cmp eax, 0x26
je 0x4355f6
cmp eax, 0x28
jne 0x4356ee
xor ebp, ebp
lea ecx, [esp + 0x194]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], ecx
mov ebx, 0x4ab9b4
mov eax, dword [ebx]
mov edi, dword [esi + 0x194]
push eax
mov ecx, edi
call fcn.0041fe40
test eax, eax
jge 0x435638
xor edi, edi
lea eax, [esp + 0x18]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
jmp 0x435640
mov edx, dword [edi + 0x24]
xor edi, edi
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x48]
mov dword [esp + 0x54], edx
push eax
call dword [0x49948c]
test eax, eax
jne 0x435692
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
and edx, 0xffff
shl ecx, 0x10
or ecx, edx
inc ebp
mov dword [eax - 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
add eax, 8
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x34]
add ebx, 0x14
inc edx
cmp ebx, 0x4abdec
mov dword [esp + 0x34], edx
jl 0x43560c
push 0x41ffd0
push 8
lea edx, [esp + 0x198]
push ebp
push edx
call fcn.0046594e
add esp, 0x10
xor ecx, ecx
cmp ebp, edi
jle 0x4356e1
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x194]
cmp dword [eax], edx
je 0x43574b
inc ecx
add eax, 8
cmp ecx, ebp
jl 0x4356d3
cmp ebp, edi
je 0x4356ee
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x350]
cmp eax, 0x25
je 0x435703
cmp eax, 0x27
jne 0x435aae
mov ebx, dword [esp + 0x30]
lea ebp, [ebx + ebx*4]
shl ebp, 2
mov eax, dword [ebp + 0x4ab9b8]
test eax, eax
je 0x4357f3
mov eax, dword [ebp + 0x4ab9b4]
mov edi, dword [esi + 0x194]
push eax
mov ecx, edi
call fcn.0041fe40
xor ecx, ecx
cmp eax, ecx
jge 0x435778
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x18]
jmp 0x43577e
cmp ecx, ebp
jge 0x4356df
mov eax, dword [esp + 0x350]
sub eax, 0x26
neg eax
sbb eax, eax
and eax, 2
dec eax
add eax, ecx
add eax, ebp
cdq
idiv ebp
mov eax, dword [esp + edx*8 + 0x194]
mov dword [esp + 0x30], eax
jmp 0x4356ee
mov edx, dword [edi + 0x24]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [esi + 0x194]
mov ebp, dword [ebp + 0x4ab9b8]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x50], ecx
push ebp
mov ecx, edi
mov dword [esp + 0x58], edx
call fcn.0041fe40
test eax, eax
jge 0x4357c9
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
jmp 0x4357cf
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
cmp eax, ecx
mov edi, 0x27
jl 0x4357f8
mov edi, 0x25
push 0x4ab5d0
mov ecx, esi
call fcn.004420b0
cmp ebx, 0x36
ja case.0x435811.9
xor ecx, ecx
mov cl, byte [ebx + 0x4368c4]
jmp dword [ecx*4 + 0x43689c]
mov edx, dword [esp + 0x350]
xor eax, eax
cmp edx, edi
sete al
mov dword [esi + 0x2b8], eax
mov ecx, dword [esi + 0x28]
cmp ecx, eax
je 0x435abb
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
jmp 0x435abb
mov ecx, dword [esp + 0x350]
xor eax, eax
cmp ecx, edi
sete al
mov dword [esi + ebx*4 + 0x2b8], eax
cmp ebx, 0x16
jl 0x435ab2
cmp ebx, 0x36
jge 0x435b96
mov eax, dword [esi + 0x9b0]
lea ebp, [ebx - 0x16]
cmp ebp, eax
jge 0x435888
push ebp
push 3
mov ecx, esi
call fcn.00440cb0
test eax, eax
je 0x435ab2
mov ecx, dword [esp + 0x350]
xor edx, edx
cmp ecx, 0x25
mov edi, dword [esi + 0xc10]
mov ecx, ebp
mov eax, 1
sete dl
shl eax, cl
shl edx, cl
not eax
and eax, edi
or edx, eax
mov dword [esi + 0xc10], edx
jmp 0x435ab2
mov ecx, dword [ebx*4 + 0x4abda0]
push ecx
lea ecx, [esp + 0x6c]
call fcn.00485498
mov ebp, dword [esp + 0x350]
mov edx, dword [esi + 0x34]
xor eax, eax
cmp ebp, edi
sete al
lea ecx, [esi + 0x34]
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x34c], 2
push eax
call dword [edx + 4]
lea ecx, [esp + 0x68]
mov dword [esp + 0x348], 0xffffffff
call fcn.0048542a
jmp case.0x435811.9
mov edi, dword [esp + 0x350]
mov eax, dword [esi + 0x2c4]
sub edi, 0x25
neg edi
sbb edi, edi
and edi, 2
dec edi
cmp eax, 0x32
jne 0x43592f
mov ebp, 1
jmp 0x435940
xor ecx, ecx
cmp eax, 0x32
setge cl
dec ecx
and ecx, 0xfffffffe
add ecx, 2
mov ebp, ecx
mov dword [esi + 0x2c0], ebp
add ebp, edi
test ebp, ebp
jl 0x435975
cmp ebp, 3
jge 0x435975
mov edx, dword [ebp*4 + 0x4ab9dc]
mov ecx, dword [esi + 0x194]
push edx
call fcn.0041fe40
cmp eax, 0xffffffff
jne 0x43596f
add ebp, edi
jns 0x43594c
jmp 0x435975
mov dword [esi + 0x2c0], ebp
mov eax, dword [esi + 0x2c0]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0x2c4], eax
jmp 0x435abb
mov eax, dword [esp + 0x350]
cmp eax, 0x25
mov eax, dword [esi + 0x2c4]
jne 0x4359be
add eax, 0xfffffff6
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x2c4], eax
jmp 0x435abb
add eax, 0xa
cmp eax, 0x64
jl 0x4359cb
mov eax, 0x64
mov dword [esi + 0x2c4], eax
jmp 0x435abb
mov eax, dword [esp + 0x350]
cmp eax, 0x25
mov eax, dword [esi + 0x2d4]
jne 0x435a00
add eax, 0xa
cmp eax, 0x78
jl 0x4359f5
mov eax, 0x78
mov dword [esi + 0x2d4], eax
jmp 0x435abb
add eax, 0xfffffff6
xor edx, edx
test eax, eax
setle dl
dec edx
and eax, edx
mov dword [esi + 0x2d4], eax
jmp 0x435abb
mov ecx, dword [esp + 0x350]
sub ecx, 0x25
neg ecx
sbb ecx, ecx
and ecx, 0xffffffe2
add ecx, 0x1f
mov eax, dword [esi + 0x2ec]
add eax, ecx
and eax, 0x1f
mov dword [esi + 0x2ec], eax
mov eax, dword [esi + eax*8 + 0xc14]
mov edx, dword [eax - 8]
test edx, edx
je 0x435a2c
jmp 0x435abb
mov eax, dword [esp + 0x350]
cmp eax, 0x25
mov eax, dword [esi + ebx*4 + 0x2b8]
jne 0x435a6f
add eax, 0xfffffff6
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
jmp 0x435a7e
add eax, 0xa
cmp eax, 0x100
jl 0x435a7e
mov eax, 0x100
mov dword [esi + ebx*4 + 0x2b8], eax
xor edi, edi
mov ebp, str._n_b_n_t_n
cmp dword [ebp], ebx
jne 0x435a99
push edi
mov ecx, esi
call fcn.00442970
add ebp, 4
inc edi
cmp ebp, 0x49a80c
jl 0x435a8c
jmp case.0x435811.9
xor ebx, ebx
jmp 0x435abb
mov ebx, dword [esp + 0x30]
cmp ebx, 0x36
jge 0x435b96
xor ebp, ebp
xor edi, edi
cmp ebx, 0x15
ja case.0x435acc.2
xor ecx, ecx
mov cl, byte [ebx + 0x436908]
jmp dword [ecx*4 + 0x4368fc]
mov edi, dword [esi + ebx*4 + 0x2b8]
jmp case.0x435acc.2
mov edx, dword [ebx*4 + 0x4abda0]
lea ecx, [esp + 0x64]
push edx
call fcn.00485498
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x34]
lea edx, [esp + 0x64]
mov dword [esp + 0x348], 3
push edx
call dword [eax]
mov edi, eax
lea ecx, [esp + 0x64]
neg edi
sbb edi, edi
mov dword [esp + 0x348], 0xffffffff
neg edi
call fcn.0048542a
cmp ebx, 0x16
jl 0x435b39
cmp ebx, 0x36
jge 0x435b39
mov edi, dword [esi + 0xc10]
lea ecx, [ebx - 0x16]
shr edi, cl
and edi, 1
lea eax, [edi + ebx*4]
mov edi, dword [esi + 0x194]
add ebx, eax
mov ecx, edi
mov ebx, dword [ebx*4 + 0x4ab9b4]
push ebx
call fcn.0041fe40
cmp eax, ebp
jge 0x435b6d
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
jmp 0x435b73
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
lea eax, [edx + ecx]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x58], eax
lea eax, [ebx + edi]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x58]
push edx
push eax
call dword [0x499490]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
push ecx
call dword [0x499494]
sub esp, 0x10
mov edx, dword [0x4aa0d0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4aa0d4]
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
call fcn.00402ee0
mov ebx, dword [esp + 0x350]
mov ebp, dword [esp + 0x44]
cmp ebx, 0x22
je 0x435bf5
cmp ebx, 0x21
jne 0x435d36
test ebp, ebp
jne 0x435d36
mov edi, ebx
mov eax, dword [esi + 0x3a4]
sub edi, 0x22
mov edx, dword [0x4afb38]
neg edi
sbb edi, edi
mov dword [esp + 0x10], edx
and edi, 0xfffffffe
inc edi
add edi, eax
mov dword [esp + 0x348], 4
mov eax, str.syste1config_bg.scn
je 0x435c33
mov eax, str.syste1config_bg_d.scn
push edi
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00483e7d
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push ecx
call fcn.00401ab0
mov ecx, eax
call fcn.004024e0
test eax, eax
je 0x435d22
mov dword [esi + 0x3a4], edi
mov edi, dword [esi + 0x194]
test edi, edi
je 0x435c7b
mov ecx, edi
call fcn.0041fc20
push edi
call fcn.004859a0
add esp, 4
push 0x4c
call fcn.00485977
mov edi, eax
add esp, 4
mov dword [esp + 0x34], edi
test edi, edi
mov byte [esp + 0x348], 5
je 0x435cd2
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0048519f
lea eax, [esp + 0x74]
push eax
call fcn.004013c0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, dword [eax]
mov ecx, edi
push eax
push esi
mov byte [esp + 0x350], 6
call fcn.0041f660
jmp 0x435cd4
xor eax, eax
mov dword [esi + 0x194], eax
mov al, byte [esp + 0x14]
test al, 1
mov dword [esp + 0x348], 4
je 0x435cf6
lea ecx, [esp + 0x70]
call fcn.0048542a
sub esp, 0x10
mov edx, dword [0x4aa0d0]
mov ebp, esp
xor eax, eax
mov edi, dword [0x4aa0d4]
xor ecx, ecx
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov ecx, esi
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], edi
call fcn.00402ee0
mov ebp, dword [esp + 0x44]
lea ecx, [esp + 0x10]
mov dword [esp + 0x348], 0xffffffff
call fcn.0048542a
cmp ebx, 0xd
je 0x435d44
cmp ebx, 0x20
jne case.0x435149.5
test ebp, ebp
jne case.0x435149.5
lea ecx, [esp + 0x28]
push ecx
call dword [0x4994ac]
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x28]
push edx
push eax
call dword [0x4994b0]
mov edi, dword [esi + 0x194]
push 0x4ac4a8
mov ecx, edi
call fcn.0041fe40
xor ecx, ecx
cmp eax, ecx
jge 0x435d94
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x18]
jmp 0x435d9a
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov ebx, dword [0x4994a4]
mov dword [esp + 0x98], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x9c], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xa0], edx
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xa4], eax
push ecx
lea eax, [esp + 0x9c]
push edx
push eax
call ebx
test eax, eax
je 0x435ede
xor ebp, ebp
lea ecx, [esp + 0xd8]
push ebp
call fcn.0041f1c0
lea edi, [esi + 0x840]
push 0x4aafe8
mov ecx, edi
mov dword [esp + 0x34c], 8
call fcn.00484d87
push eax
lea ecx, [esp + 0x138]
call fcn.00485517
push 0x4acc74
lea ecx, [esp + 0x78]
push 0x4acc64
push ecx
mov ecx, esi
call fcn.0042d790
mov eax, dword [eax]
push eax
call fcn.00465432
shl eax, 1
add esp, 4
lea ecx, [esp + 0x74]
mov dword [esp + 0x13c], eax
call fcn.0048542a
lea ecx, [esp + 0xd8]
mov dword [esp + 0x140], 1
call fcn.0048673b
cmp eax, 1
jne 0x435e86
lea edx, [esp + 0x134]
mov ecx, edi
push edx
push 0x4aafe8
call fcn.00484d87
mov ecx, eax
call fcn.00485517
lea ecx, [esp + 0x144]
mov dword [esp + 0x348], 0xb
call fcn.0048542a
lea ecx, [esp + 0x138]
mov byte [esp + 0x348], 0xa
call fcn.0048542a
lea ecx, [esp + 0x134]
mov byte [esp + 0x348], 9
call fcn.0048542a
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.00486419
jmp 0x435ee0
xor ebp, ebp
mov edi, dword [esi + 0x194]
push 0x4ac49c
mov ecx, edi
call fcn.0041fe40
cmp eax, ebp
jge 0x435f0c
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
jmp 0x435f12
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov dword [esp + 0x78], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x7c], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x80], edx
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x84], eax
push ecx
lea eax, [esp + 0x7c]
push edx
push eax
call ebx
test eax, eax
je 0x436003
push 0
lea ecx, [esp + 0xdc]
call fcn.00454b40
mov dword [esp + 0x348], 0xc
xor ebp, ebp
lea edi, [esi + 0xb10]
mov ecx, dword [edi]
mov eax, dword [ecx - 8]
test eax, eax
je 0x435f94
mov edx, dword [esp + 0x180]
push edi
push edx
lea ecx, [esp + 0x180]
call fcn.0048429b
inc ebp
add edi, 8
cmp ebp, 0x20
jb 0x435f6d
mov eax, dword [esi + 0xc10]
lea ecx, [esp + 0xd8]
mov dword [esp + 0x18c], eax
call fcn.0048673b
cmp eax, 1
jne 0x435fbf
mov ecx, dword [esp + 0x18c]
mov dword [esi + 0xc10], ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x348], 0xe
call fcn.004840c6
lea ecx, [esp + 0x134]
mov byte [esp + 0x348], 0xd
call fcn.0048d276
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.00486419
xor ebp, ebp
mov edi, dword [esi + 0x194]
push 0x4ac490
mov ecx, edi
call fcn.0041fe40
cmp eax, ebp
jge 0x43602f
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
jmp 0x436035
mov edx, dword [edi + 0x24]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov dword [esp + 0xb8], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xbc], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xc0], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc4], edx
push eax
lea edx, [esp + 0xbc]
push ecx
push edx
call ebx
test eax, eax
je 0x436169
push ebp
lea ecx, [esp + 0xdc]
call fcn.0040bed0
lea eax, [esi + 0x440]
lea ecx, [esp + 0x134]
push eax
mov dword [esp + 0x34c], 0xf
call fcn.00485517
lea ecx, [esp + 0xd8]
call fcn.0048673b
cmp eax, 1
jne 0x43614a
lea eax, [esp + 0x134]
lea ecx, [esi + 0x440]
push eax
call fcn.00485517
mov ebp, 0x49a6b0
lea ebx, [esi + 0x3c]
mov edi, dword [ebx]
test edi, edi
je 0x4360e9
mov ecx, edi
call fcn.00403cf0
push edi
call fcn.004859a0
add esp, 4
push 0x44
call fcn.00485977
mov ecx, eax
add esp, 4
mov dword [esp + 0x44], ecx
test ecx, ecx
mov byte [esp + 0x348], 0x10
je 0x436130
mov edx, dword [esi + 0x448]
mov eax, 0x51eb851f
imul edx, dword [ebp]
imul edx
mov edi, dword [esi + 0x440]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push edi
push esi
call fcn.00403b50
jmp 0x436132
xor eax, eax
mov dword [ebx], eax
add ebp, 4
add ebx, 4
cmp ebp, 0x49a6c4
mov byte [esp + 0x348], 0xf
jb 0x4360d3
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.0040bf20
mov ebx, dword [0x4994a4]
xor ebp, ebp
mov edi, dword [esi + 0x194]
push 0x4ad21c
mov ecx, edi
call fcn.0041fe40
cmp eax, ebp
jge 0x436195
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
jmp 0x43619b
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov dword [esp + 0x88], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x90], edx
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x94], eax
push ecx
lea eax, [esp + 0x8c]
push edx
push eax
call ebx
test eax, eax
je 0x4361ee
mov dword [esi + 0x3d4], 0x4ad32c
mov dword [esi + 0x210], 1
mov edi, dword [esi + 0x194]
push 0x4ac954
mov ecx, edi
call fcn.0041fe40
cmp eax, ebp
jge 0x43621a
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
jmp 0x436220
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov dword [esp + 0xa8], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xac], ecx
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xb0], edx
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb4], eax
push ecx
lea eax, [esp + 0xac]
push edx
push eax
call ebx
test eax, eax
je case.0x435149.5
push 0
mov ecx, esi
call fcn.00437290
jmp case.0x435149.5
cmp ebx, 0x22
je 0x43627f
cmp ebx, 0x21
jne case.0x435149.5
cmp ebp, edx
jne case.0x435149.5
mov edi, ebx
mov eax, dword [esi + 0x3a4]
sub edi, 0x22
mov ecx, dword [0x4afb38]
neg edi
sbb edi, edi
mov dword [esp + 0x10], ecx
and edi, 0xfffffffe
inc edi
add edi, eax
mov ebp, 0x11
mov eax, str.syste1_status_bg.scn
mov dword [esp + 0x348], ebp
je 0x4362be
mov eax, str.syste1_status_bg_d.scn
push edi
lea edx, [esp + 0x14]
push eax
push edx
call fcn.00483e7d
mov eax, dword [esp + 0x1c]
add esp, 0xc
push eax
call fcn.00401ab0
mov ecx, eax
call fcn.004024e0
test eax, eax
je 0x4363b0
mov dword [esi + 0x3a4], edi
mov edi, dword [esi + 0x194]
test edi, edi
je 0x436306
mov ecx, edi
call fcn.0041fc20
push edi
call fcn.004859a0
add esp, 4
push 0x4c
call fcn.00485977
mov edi, eax
add esp, 4
mov dword [esp + 0x44], edi
test edi, edi
mov byte [esp + 0x348], 0x12
je 0x43635d
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.0048519f
lea eax, [esp + 0x70]
push eax
call fcn.004013c0
add esp, 8
mov dword [esp + 0x14], 2
mov eax, dword [eax]
mov ecx, edi
push eax
push esi
mov byte [esp + 0x350], 0x13
call fcn.0041f660
jmp 0x43635f
xor eax, eax
mov dword [esi + 0x194], eax
mov al, byte [esp + 0x14]
test al, 2
mov dword [esp + 0x348], ebp
je 0x43637d
lea ecx, [esp + 0x6c]
call fcn.0048542a
sub esp, 0x10
mov edx, dword [0x4aa0d0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4aa0d4]
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
call fcn.00402ee0
push 0x4ab730
mov ecx, esi
call fcn.004420b0
lea ecx, [esp + 0x10]
mov dword [esp + 0x348], 0xffffffff
call fcn.0048542a
jmp case.0x435149.5
mov edi, dword [esi + 0x1c]
call dword [0x4994a8]
cmp eax, edi
je case.0x435149.5
cmp ebx, 0x26
jne 0x43646e
mov eax, dword [esi + 0x394]
test eax, eax
jle 0x4352c9
lea ecx, [eax - 1]
mov eax, dword [esi + 0x398]
cmp eax, ecx
mov dword [esi + 0x394], ecx
jl 0x436406
mov eax, ecx
mov ebx, dword [esi + 0x39c]
mov edx, ecx
sub edx, ebx
mov dword [esi + 0x398], eax
inc edx
cmp eax, edx
jg 0x43641d
mov eax, edx
mov dword [esi + 0x398], eax
mov edx, dword [esi + 0x7f8]
mov eax, ecx
cmp eax, edx
jge 0x436448
test eax, eax
jl 0x436448
mov edx, dword [esi + 0x7f0]
mov edi, eax
dec eax
test edi, edi
je 0x43644a
inc eax
mov edx, dword [edx]
dec eax
jne 0x436441
jmp 0x43644a
xor edx, edx
mov eax, dword [edx + 8]
mov edx, dword [esi + 0x25c]
cmp eax, edx
je 0x436515
mov dword [esi + 0x398], ecx
push eax
mov ecx, esi
call fcn.004403c0
jmp 0x436515
cmp ebx, 0x28
jne 0x43655b
mov ecx, dword [esi + 0x7f8]
mov eax, dword [esi + 0x394]
dec ecx
cmp eax, ecx
jge 0x43654d
mov ecx, dword [esi + 0x398]
inc eax
cmp ecx, eax
mov dword [esi + 0x394], eax
jl 0x43649f
mov ecx, eax
mov ebx, dword [esi + 0x39c]
mov edx, eax
sub edx, ebx
mov dword [esi + 0x398], ecx
inc edx
cmp ecx, edx
jg 0x4364b6
mov ecx, edx
mov dword [esi + 0x398], ecx
mov ecx, dword [esi + 0x7f8]
cmp eax, ecx
jge 0x4364df
test eax, eax
jl 0x4364df
mov ecx, dword [esi + 0x7f0]
mov edx, eax
dec eax
test edx, edx
je 0x4364e1
inc eax
mov ecx, dword [ecx]
dec eax
jne 0x4364d8
jmp 0x4364e1
xor ecx, ecx
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x25c]
cmp eax, ecx
je 0x436515
push eax
mov ecx, esi
call fcn.004403c0
mov eax, dword [esi + 0x394]
mov ebp, dword [esi + 0x39c]
sub eax, ebp
xor ecx, ecx
inc eax
test eax, eax
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x398], eax
sub esp, 0x10
mov edx, dword [0x4aa0d0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4aa0d4]
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
call fcn.00402ee0
push 0x4ab730
mov ecx, esi
call fcn.004420b0
jmp 0x4352c9
test ebp, ebp
jne 0x4352c9
push ebp
jmp 0x4352c2
cmp ebx, 0xd
je 0x436569
cmp ebx, 0x20
jne case.0x435149.5
test ebp, ebp
jmp 0x4352ad
cmp dword [0x4bb004], edx
jne case.0x435149.5
mov ecx, dword [esi + 0x1f8]
cmp ecx, edx
je 0x43659d
mov eax, dword [esp + 0x354]
mov edx, dword [ecx]
push edi
push eax
push ebx
call dword [edx + 0x20]
test eax, eax
jne case.0x435149.5
mov eax, dword [esi + 0x3c8]
mov ecx, esi
test eax, eax
je 0x4365b3
call fcn.004311c0
jmp 0x4352c9
call fcn.00441070
test eax, eax
je 0x4365ee
sub esp, 0x10
xor eax, eax
mov ebx, esp
xor ecx, ecx
mov dword [esi + 0x238], ecx
mov edx, dword [0x4aa0d0]
mov edi, dword [0x4aa0d4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edi
call fcn.00402ee0
jmp 0x4352c9
mov eax, dword [esi + 0xd2c]
add eax, 0xfffffffc
cmp eax, 0xb
ja case.0x436608.7
xor ecx, ecx
mov cl, byte [eax + 0x436930]
jmp dword [ecx*4 + 0x436920]
cmp ebx, 0xd
je 0x43662e
jmp 0x436625
cmp ebx, 0x26
je 0x436642
cmp ebx, 0x28
je 0x436642
cmp ebx, 0xd
je 0x43662e
cmp ebx, 0x20
jne 0x4367fd
test ebp, ebp
jne case.0x435149.5
mov ecx, esi
call fcn.00436a10
jmp 0x4352c9
mov edx, dword [esi + 0x20c]
test edx, edx
jl 0x436681
mov eax, ebx
mov ecx, dword [esi + 0x814]
sub eax, 0x26
neg eax
sbb eax, eax
and eax, 2
dec eax
add eax, ecx
add eax, edx
cdq
idiv ecx
mov eax, dword [esi + 0x180]
test eax, eax
mov dword [esi + 0x20c], edx
je 0x4366a8
test byte [esi + 0x1b0], 2
je 0x4366b4
jmp 0x4366a8
mov eax, dword [esi + 0x814]
test eax, eax
jle 0x4366b4
mov eax, dword [esi + 0x180]
mov dword [esi + 0x20c], 0
test eax, eax
je 0x4366a8
test byte [esi + 0x1b0], 2
je 0x4366b4
push 0x4ab730
mov ecx, esi
call fcn.004420b0
mov ecx, dword [esi + 0x13c]
push 0
call fcn.004202e0
jmp 0x4352c9
cmp ebx, 0x26
je 0x4366f0
cmp ebx, 0x28
je 0x4366f0
cmp ebx, 0x25
je 0x4366f0
cmp ebx, 0x27
je 0x4366f0
cmp ebx, 0xd
je 0x4366e8
cmp ebx, 0x20
jne 0x4367fd
test ebp, ebp
jne case.0x435149.5
lea edx, [esp + 0x34]
push edx
call dword [0x4994ac]
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [0x4994b0]
lea eax, [ebx - 0xd]
cmp eax, 0x1b
ja case.0x43671e.18
xor edx, edx
mov dl, byte [eax + 0x436954]
jmp dword [edx*4 + 0x43693c]
mov eax, dword [esp + 0x38]
xor ecx, ecx
add eax, 0xfffffff0
test eax, eax
setle cl
dec ecx
and ecx, eax
mov dword [esp + 0x38], ecx
jmp case.0x43671e.18
mov edx, dword [esp + 0x38]
mov ecx, dword [0x4aa0d4]
dec ecx
lea eax, [edx + 0x10]
cmp eax, ecx
jge 0x436736
mov dword [esp + 0x38], eax
jmp case.0x43671e.18
mov edx, dword [esp + 0x34]
xor ecx, ecx
lea eax, [edx - 0x10]
test eax, eax
setle cl
dec ecx
and ecx, eax
mov dword [esp + 0x34], ecx
jmp case.0x43671e.18
mov edx, dword [esp + 0x34]
mov ecx, dword [0x4aa0d0]
dec ecx
lea eax, [edx + 0x10]
cmp eax, ecx
jge 0x436765
mov dword [esp + 0x34], eax
jmp case.0x43671e.18
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl case.0x43671e.18
cmp ecx, dword [0x4aa0d0]
jge case.0x43671e.18
mov edx, dword [esp + 0x38]
test edx, edx
jl case.0x43671e.18
cmp edx, dword [0x4aa0d4]
jge case.0x43671e.18
sub esp, 8
mov eax, esp
mov dword [esp + 0x4c], esp
push edi
mov dword [eax], ecx
mov ecx, esi
mov dword [eax + 4], edx
call fcn.00432f90
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x34]
push edx
push eax
call dword [0x499490]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
push edx
call dword [0x499494]
jmp 0x4352c9
cmp ebx, 0x28
je 0x436636
cmp ebx, 0xd
je 0x4367f0
cmp ebx, 0x20
jne 0x4367fd
test ebp, ebp
je 0x436636
jmp case.0x435149.5
test ebp, ebp
jne case.0x435149.5
mov ebx, 0x49a728
mov edi, 0x4bb61c
mov eax, dword [esp + 0x350]
mov ecx, dword [edi - 4]
cmp eax, ecx
jne 0x436841
push 0x10
call dword [0x499450]
xor ecx, ecx
test ax, ax
mov eax, dword [edi]
setl cl
cmp eax, ecx
jne 0x436841
mov edx, dword [ebx]
mov ecx, esi
push edx
call fcn.00432ac0
test eax, eax
jne 0x436855
add edi, 8
inc ebp
add ebx, 0x10
cmp edi, 0x4bb684
jb 0x43680f
jmp case.0x435149.5
shl ebp, 4
mov ecx, esi
mov eax, dword [ebp + 0x49a728]
push eax
call fcn.00432d40
jmp 0x4352c9