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

Disassembly:
push 0xffffffffffffffff
push 0x486bf8
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 + 0x500]
mov dword [esp + 0x14], edx
cmp eax, edx
jne 0x42a6b5
mov edi, dword [esp + 0x358]
mov eax, dword [esi + 0x50]
mov ebp, dword [esp + 0x350]
mov ebx, edi
shr ebx, 0xe
and ebx, 1
cmp eax, edx
mov dword [esi + 0x2d8], edx
mov dword [esp + 0x44], ebx
mov dword [esi + 0x58], ebp
jne 0x42a6b5
cmp dword [esi + 0x478], edx
je 0x42a528
mov eax, dword [esi + 0x2b8]
cmp ebp, 0x26
je 0x42a4bb
cmp ebp, 0x25
jne 0x42a4c8
cmp eax, edx
je 0x42a4c8
lea ecx, [eax - 1]
mov dword [esi + 0x2b8], ecx
cmp ebp, 0x28
je 0x42a4d2
cmp ebp, 0x27
jne 0x42a4e4
mov ecx, dword [esi + 0x2b8]
cmp ecx, 1
je 0x42a4e4
inc ecx
mov dword [esi + 0x2b8], ecx
cmp dword [esi + 0x2b8], eax
je 0x42a505
mov ecx, dword [esi + 0x184]
push 0
call fcn.00417d40
push 0x49a2fc
mov ecx, esi
call fcn.00435c30
cmp ebp, 0xd
je 0x42a50f
cmp ebp, 0x20
jne 0x42a51a
test ebx, ebx
jne 0x42a51a
mov ecx, esi
call fcn.0042bda0
cmp ebp, 0x1b
jne 0x42a6b5
jmp 0x42a6ae
mov eax, dword [esi + 0xde8]
cmp eax, 0xb
ja case.0x42a537.5
jmp dword [eax*4 + 0x42bbf8]
mov edi, dword [esi + 0x180]
mov ebx, dword [esi + 0x2b8]
push 0x49ba78
mov ecx, edi
call fcn.00417900
xor ecx, ecx
cmp eax, ecx
jge 0x42a572
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 0x42a578
mov edx, dword [edi + 0x24]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov dword [esp + 0xc8], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xcc], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xd0], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0xc8]
mov dword [esp + 0xd4], edx
push eax
call dword [0x489460]
test eax, eax
jne 0x42a5ed
cmp ebp, 0x26
jne 0x42a5c3
mov eax, dword [esi + 0x2b8]
test eax, eax
je 0x42a5e6
dec eax
jmp 0x42a5d4
cmp ebp, 0x28
jne 0x42a5e6
mov eax, dword [esi + 0x2b8]
cmp eax, 5
je 0x42a5e6
inc eax
push 0x49a2fc
mov ecx, esi
mov dword [esi + 0x2b8], eax
call fcn.00435c30
push 0
jmp 0x42a680
cmp ebp, 0x26
je 0x42a5f7
cmp ebp, 0x28
jne 0x42a624
mov ecx, ebp
mov edx, dword [esi + 0x2b8]
sub ecx, 0x26
neg ecx
sbb ecx, ecx
and ecx, 2
dec ecx
push ecx
mov ecx, dword [esi + 0x180]
push edx
push 0xd
push 0x48a604
call fcn.00417950
mov dword [esi + 0x2b8], eax
mov eax, dword [esi + 0x2b8]
cmp eax, ebx
je 0x42a68b
cmp eax, 0xffffffff
je 0x42a655
mov eax, dword [eax*4 + 0x48a604]
push eax
push 0x49bbb0
push esi
call fcn.00435ea0
add esp, 0xc
mov ecx, esi
push 0x49a2fc
call fcn.00435c30
cmp ebx, 0xffffffff
je 0x42a66d
mov ecx, dword [ebx*4 + 0x48a604]
push ecx
mov ecx, dword [esi + 0x180]
call fcn.00417d40
mov eax, dword [esi + 0x2b8]
cmp eax, 0xffffffff
je 0x42a68b
mov edx, dword [eax*4 + 0x48a604]
push edx
mov ecx, dword [esi + 0x180]
call fcn.00417d40
cmp ebp, 0xd
je 0x42a695
cmp ebp, 0x20
jne case.0x42a537.5
mov eax, dword [esp + 0x44]
test eax, eax
jne case.0x42a537.5
mov ecx, esi
call fcn.0042bda0
cmp dword [esp + 0x350], 0x1b
jne 0x42a6b5
mov ecx, esi
call fcn.0042c520
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 + 0x354]
cmp ebp, 0x26
jne 0x42a6f1
cmp edi, edx
je 0x42a84c
lea eax, [edi - 1]
mov dword [esi + 0x354], eax
jmp 0x42a84c
cmp ebp, 0x28
jne 0x42a790
mov ecx, dword [0x4990c8]
dec ecx
cmp edi, ecx
je 0x42a84c
mov edx, dword [0x49e2a4]
mov dword [esp + 0x14], edx
lea eax, [edi + 1]
mov dword [esp + 0x348], 0
cdq
idiv dword [esi + 0x358]
push eax
lea eax, [esp + 0x18]
push 0x49bb78
push eax
call fcn.004754c2
mov ecx, dword [esi + 0x354]
mov eax, dword [esi + 0x358]
add esp, 0xc
inc ecx
cmp ecx, eax
jl 0x42a776
mov ecx, dword [esi + 0x190]
push 0x49bc70
call fcn.00417900
cmp eax, 0xffffffff
je 0x42a776
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x190]
push edx
call fcn.00417900
cmp eax, 0xffffffff
je 0x42a77c
inc dword [esi + 0x354]
mov dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x14]
jmp 0x42a847
cmp ebp, 0x25
jne 0x42a7b2
mov eax, dword [esi + 0x358]
cmp edi, eax
jl 0x42a84c
mov ecx, edi
sub ecx, eax
mov dword [esi + 0x354], ecx
jmp 0x42a84c
cmp ebp, 0x27
jne 0x42a84c
mov ecx, dword [esi + 0x358]
mov eax, dword [0x4990c8]
lea edx, [ecx + edi]
cmp edx, eax
jge 0x42a84c
mov eax, dword [0x49e2a4]
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 0x49bb78
push ecx
call fcn.004754c2
mov ecx, dword [esi + 0x190]
add esp, 0xc
push 0x49bc70
call fcn.00417900
cmp eax, 0xffffffff
je 0x42a824
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x190]
push edx
call fcn.00417900
cmp eax, 0xffffffff
je 0x42a838
mov eax, dword [esi + 0x358]
mov ecx, dword [esi + 0x354]
add ecx, eax
mov dword [esi + 0x354], ecx
mov dword [esp + 0x348], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.00476964
cmp dword [esi + 0x354], edi
je 0x42a867
push 0x49a2fc
mov ecx, esi
call fcn.00435c30
mov ecx, esi
call fcn.0041fe30
cmp ebp, 0xd
je 0x42a871
cmp ebp, 0x20
jne 0x42a87c
test ebx, ebx
jne 0x42a87c
mov ecx, esi
call fcn.0042bda0
sub esp, 0x10
mov edx, dword [0x4990c0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4990c4]
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.0x42a537.5
mov edi, dword [esi + 0x1c]
call dword [0x489440]
cmp eax, edi
je case.0x42a537.5
cmp ebp, 0x26
je 0x42a8d1
cmp ebp, 0x28
je 0x42a8d1
cmp ebp, 0x25
je 0x42a8d1
cmp ebp, 0x27
jne 0x42afd6
lea ecx, [esp + 0x58]
push ecx
call dword [0x489464]
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x58]
push edx
push eax
call dword [0x489468]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, 0x49a504
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 0x42a984
mov ebp, dword [esp + 0x28]
mov eax, dword [eax]
mov edi, dword [esi + 0x190]
push eax
mov ecx, edi
call fcn.00417900
xor ecx, ecx
cmp eax, ecx
jge 0x42a943
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 0x42a949
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 0x42a96f
mov eax, dword [esp + 0x58]
cmp eax, edi
jl 0x42a96f
cmp eax, ebx
jle 0x42a984
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 0x42a917
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
add eax, edx
mov ecx, dword [eax*4 + 0x49a504]
test ecx, ecx
jne 0x42a9ce
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, 0x49a93c
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], eax
jl 0x42a902
mov eax, dword [esp + 0x350]
cmp eax, 0x26
je 0x42a9e3
cmp eax, 0x28
jne 0x42aadb
xor ebp, ebp
lea ecx, [esp + 0x194]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], ecx
mov ebx, 0x49a504
mov eax, dword [ebx]
mov edi, dword [esi + 0x190]
push eax
mov ecx, edi
call fcn.00417900
test eax, eax
jge 0x42aa25
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 0x42aa2d
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 [0x489460]
test eax, eax
jne 0x42aa7f
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, 0x49a93c
mov dword [esp + 0x34], edx
jl 0x42a9f9
push 0x417a90
push 8
lea edx, [esp + 0x198]
push ebp
push edx
call fcn.00457254
add esp, 0x10
xor ecx, ecx
cmp ebp, edi
jle 0x42aace
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x194]
cmp dword [eax], edx
je 0x42ab38
inc ecx
add eax, 8
cmp ecx, ebp
jl 0x42aac0
cmp ebp, edi
je 0x42aadb
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x350]
cmp eax, 0x25
je 0x42aaf0
cmp eax, 0x27
jne 0x42ae9e
mov ebx, dword [esp + 0x30]
lea ebp, [ebx + ebx*4]
shl ebp, 2
mov eax, dword [ebp + 0x49a508]
test eax, eax
je 0x42abe7
mov eax, dword [ebp + 0x49a504]
mov edi, dword [esi + 0x190]
push eax
mov ecx, edi
call fcn.00417900
xor ecx, ecx
cmp eax, ecx
jge 0x42ab65
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 0x42ab6b
cmp ecx, ebp
jge 0x42aacc
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 0x42aadb
mov edx, dword [edi + 0x24]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [esi + 0x190]
mov ebp, dword [ebp + 0x49a508]
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.00417900
test eax, eax
jge 0x42abb6
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 0x42abbc
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
jge 0x42abe7
mov edi, 0x27
mov ebp, 0x25
jmp 0x42abee
mov ebp, 0x25
mov edi, ebp
push 0x49bc04
mov ecx, esi
call fcn.00435c30
cmp ebx, 0x36
ja case.0x42ac07.9
xor ecx, ecx
mov cl, byte [ebx + 0x42bc50]
jmp dword [ecx*4 + 0x42bc28]
mov edx, dword [esp + 0x350]
xor eax, eax
cmp edx, edi
sete al
mov dword [esi + 0x360], eax
mov ecx, dword [esi + 0x28]
cmp ecx, eax
je 0x42aeab
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
jmp 0x42aeab
mov ecx, dword [esp + 0x350]
xor eax, eax
cmp ecx, edi
sete al
mov dword [esi + ebx*4 + 0x360], eax
cmp ebx, 0x16
jl 0x42aea2
cmp ebx, 0x36
jge 0x42af85
mov eax, dword [esi + 0xa6c]
lea ebp, [ebx - 0x16]
cmp ebp, eax
jge 0x42ac7e
push ebp
push 3
mov ecx, esi
call fcn.004348b0
test eax, eax
je 0x42aea2
mov ecx, dword [esp + 0x350]
xor edx, edx
cmp ecx, 0x25
mov edi, dword [esi + 0xcc8]
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 + 0xcc8], edx
jmp 0x42aea2
mov ecx, dword [ebx*4 + 0x49a8f0]
push ecx
lea ecx, [esp + 0x6c]
call fcn.004769d2
mov ebp, dword [esp + 0x350]
xor edx, edx
cmp ebp, edi
lea eax, [esp + 0x68]
sete dl
push edx
push eax
mov ecx, esi
mov dword [esp + 0x350], 2
call fcn.0041ac00
lea ecx, [esp + 0x68]
mov dword [esp + 0x348], 0xffffffff
call fcn.00476964
jmp case.0x42ac07.9
mov edi, dword [esp + 0x350]
mov eax, dword [esi + 0x36c]
sub edi, 0x25
neg edi
sbb edi, edi
and edi, 2
dec edi
cmp eax, 0x32
jne 0x42ad23
mov ebp, 1
jmp 0x42ad34
xor ecx, ecx
cmp eax, 0x32
setge cl
dec ecx
and ecx, 0xfffffffe
add ecx, 2
mov ebp, ecx
mov dword [esi + 0x368], ebp
add ebp, edi
test ebp, ebp
jl 0x42ad69
cmp ebp, 3
jge 0x42ad69
mov edx, dword [ebp*4 + 0x49a52c]
mov ecx, dword [esi + 0x190]
push edx
call fcn.00417900
cmp eax, 0xffffffff
jne 0x42ad63
add ebp, edi
jns 0x42ad40
jmp 0x42ad69
mov dword [esi + 0x368], ebp
mov eax, dword [esi + 0x368]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0x36c], eax
jmp 0x42aeab
mov eax, dword [esp + 0x350]
cmp eax, ebp
mov eax, dword [esi + 0x36c]
jne 0x42adb1
add eax, 0xfffffff6
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x36c], eax
jmp 0x42aeab
add eax, 0xa
cmp eax, 0x64
jl 0x42adbe
mov eax, 0x64
mov dword [esi + 0x36c], eax
jmp 0x42aeab
mov eax, dword [esp + 0x350]
cmp eax, ebp
mov eax, dword [esi + 0x37c]
jne 0x42adf2
add eax, 0xa
cmp eax, 0x78
jl 0x42ade7
mov eax, 0x78
mov dword [esi + 0x37c], eax
jmp 0x42aeab
add eax, 0xfffffff6
xor edx, edx
test eax, eax
setle dl
dec edx
and eax, edx
mov dword [esi + 0x37c], eax
jmp 0x42aeab
mov ecx, dword [esp + 0x350]
sub ecx, ebp
neg ecx
sbb ecx, ecx
and ecx, 0xffffffe2
add ecx, 0x1f
mov eax, dword [esi + 0x394]
add eax, ecx
and eax, 0x1f
mov dword [esi + 0x394], eax
mov eax, dword [esi + eax*8 + 0xccc]
mov edx, dword [eax - 8]
test edx, edx
je 0x42ae1d
jmp 0x42aeab
mov eax, dword [esp + 0x350]
cmp eax, ebp
mov eax, dword [esi + ebx*4 + 0x360]
jne 0x42ae5f
add eax, 0xfffffff6
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
jmp 0x42ae6e
add eax, 0xa
cmp eax, 0x100
jl 0x42ae6e
mov eax, 0x100
mov dword [esi + ebx*4 + 0x360], eax
xor edi, edi
mov ebp, str._n_b_n_t_n
cmp dword [ebp], ebx
jne 0x42ae89
push edi
mov ecx, esi
call fcn.004364f0
add ebp, 4
inc edi
cmp ebp, 0x48a6dc
jl 0x42ae7c
jmp case.0x42ac07.9
xor ebx, ebx
jmp 0x42aeab
mov ebx, dword [esp + 0x30]
cmp ebx, 0x36
jge 0x42af85
xor edi, edi
cmp ebx, 0x15
ja case.0x42aeba.2
xor ecx, ecx
mov cl, byte [ebx + 0x42bc94]
jmp dword [ecx*4 + 0x42bc88]
mov edi, dword [esi + ebx*4 + 0x360]
jmp case.0x42aeba.2
mov edx, dword [ebx*4 + 0x49a8f0]
lea ecx, [esp + 0x64]
push edx
call fcn.004769d2
lea eax, [esp + 0x64]
mov ecx, esi
push eax
mov dword [esp + 0x34c], 3
call fcn.0041abd0
mov edi, eax
lea ecx, [esp + 0x64]
neg edi
sbb edi, edi
mov dword [esp + 0x348], 0xffffffff
neg edi
call fcn.00476964
cmp ebx, 0x16
jl 0x42af26
cmp ebx, 0x36
jge 0x42af26
mov edi, dword [esi + 0xcc8]
lea ecx, [ebx - 0x16]
shr edi, cl
and edi, 1
lea ecx, [edi + ebx*4]
mov edi, dword [esi + 0x190]
add ebx, ecx
mov ecx, edi
mov ebx, dword [ebx*4 + 0x49a504]
push ebx
call fcn.00417900
xor ecx, ecx
cmp eax, ecx
jge 0x42af5c
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 0x42af62
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 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 ecx, [esp + 0x58]
push ecx
push eax
call dword [0x4894d4]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call dword [0x48942c]
sub esp, 0x10
mov edx, dword [0x4990c0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4990c4]
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 ebp, dword [esp + 0x350]
mov ebx, dword [esp + 0x44]
cmp ebp, 0x22
je 0x42afe4
cmp ebp, 0x21
jne 0x42b124
test ebx, ebx
jne 0x42b124
mov edi, ebp
mov eax, dword [esi + 0x44c]
sub edi, 0x22
mov ecx, dword [0x49e2a4]
neg edi
sbb edi, edi
mov dword [esp + 0x10], ecx
and edi, 0xfffffffe
inc edi
add edi, eax
mov dword [esp + 0x348], 4
mov eax, str.systemconfig_bg.scn
je 0x42b022
mov eax, str.systemconfig_bg_d.scn
push edi
lea edx, [esp + 0x14]
push eax
push edx
call fcn.004754c2
mov eax, dword [esp + 0x1c]
add esp, 0xc
push eax
call fcn.00401ab0
mov ecx, eax
call fcn.004024e0
test eax, eax
je 0x42b110
mov dword [esi + 0x44c], edi
mov edi, dword [esi + 0x190]
test edi, edi
je 0x42b06a
mov ecx, edi
call fcn.00417700
push edi
call fcn.00476eda
add esp, 4
push 0x44
call fcn.00476eb1
mov edi, eax
add esp, 4
mov dword [esp + 0x34], edi
test edi, edi
mov byte [esp + 0x348], 5
je 0x42b0c1
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.004766d9
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.004172a0
jmp 0x42b0c3
xor eax, eax
mov dword [esi + 0x190], eax
mov al, byte [esp + 0x14]
test al, 1
mov dword [esp + 0x348], 4
je 0x42b0e5
lea ecx, [esp + 0x70]
call fcn.00476964
sub esp, 0x10
mov edx, dword [0x4990c0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4990c4]
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 + 0x44]
lea ecx, [esp + 0x10]
mov dword [esp + 0x348], 0xffffffff
call fcn.00476964
cmp ebp, 0xd
je 0x42b132
cmp ebp, 0x20
jne case.0x42a537.5
test ebx, ebx
jne case.0x42a537.5
lea ecx, [esp + 0x28]
push ecx
call dword [0x489464]
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x28]
push edx
push eax
call dword [0x489468]
mov edi, dword [esi + 0x190]
push 0x49af9c
mov ecx, edi
call fcn.00417900
cmp eax, ebx
jge 0x42b180
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x18]
jmp 0x42b186
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov ebp, dword [0x489488]
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 ebp
test eax, eax
je 0x42b29e
push ebx
lea ecx, [esp + 0xdc]
call fcn.00416e70
lea edi, [esi + 0x8fc]
push 0x499fa4
mov ecx, edi
mov dword [esp + 0x34c], 8
call fcn.0047627c
push eax
lea ecx, [esp + 0x138]
call fcn.00476a51
push 0x49b694
lea ecx, [esp + 0x78]
push 0x49b684
push ecx
mov ecx, esi
call fcn.00423ba0
mov eax, dword [eax]
push eax
call fcn.00456d32
shl eax, 1
add esp, 4
lea ecx, [esp + 0x74]
mov dword [esp + 0x138], eax
call fcn.00476964
lea ecx, [esp + 0xd8]
mov dword [esp + 0x13c], 1
call fcn.00477c75
cmp eax, 1
jne 0x42b270
lea edx, [esp + 0x134]
mov ecx, edi
push edx
push 0x499fa4
call fcn.0047627c
mov ecx, eax
call fcn.00476a51
lea ecx, [esp + 0x134]
mov dword [esp + 0x348], 9
call fcn.00476964
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.00477953
mov edi, dword [esi + 0x190]
push 0x49af90
mov ecx, edi
call fcn.00417900
cmp eax, ebx
jge 0x42b2ca
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x18]
jmp 0x42b2d0
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 ebp
test eax, eax
je 0x42b3c2
push ebx
lea ecx, [esp + 0xdc]
call fcn.00446520
mov dword [esp + 0x348], 0xa
xor ebp, ebp
lea edi, [esi + 0xbc8]
mov ecx, dword [edi]
cmp dword [ecx - 8], ebx
je 0x42b34f
mov edx, dword [esp + 0x180]
push edi
push edx
lea ecx, [esp + 0x180]
call fcn.004758e0
inc ebp
add edi, 8
cmp ebp, 0x20
jb 0x42b32a
mov eax, dword [esi + 0xcc8]
lea ecx, [esp + 0xd8]
mov dword [esp + 0x18c], eax
call fcn.00477c75
cmp eax, 1
jne 0x42b37a
mov ecx, dword [esp + 0x18c]
mov dword [esi + 0xcc8], ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x348], 0xc
call fcn.0047570b
lea ecx, [esp + 0x134]
mov byte [esp + 0x348], 0xb
call fcn.0047e7b0
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.00477953
mov ebp, dword [0x489488]
mov edi, dword [esi + 0x190]
push 0x49af84
mov ecx, edi
call fcn.00417900
cmp eax, ebx
jge 0x42b3ee
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x18]
jmp 0x42b3f4
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 ebp
test eax, eax
je 0x42b528
push ebx
lea ecx, [esp + 0xdc]
call fcn.0040b3a0
lea eax, [esi + 0x4e0]
lea ecx, [esp + 0x134]
push eax
mov dword [esp + 0x34c], 0xd
call fcn.00476a51
lea ecx, [esp + 0xd8]
call fcn.00477c75
cmp eax, 1
jne 0x42b509
lea eax, [esp + 0x134]
lea ecx, [esi + 0x4e0]
push eax
call fcn.00476a51
mov ebp, 0x48a5c0
lea ebx, [esi + 0x38]
mov edi, dword [ebx]
test edi, edi
je 0x42b4a8
mov ecx, edi
call fcn.00403ce0
push edi
call fcn.00476eda
add esp, 4
push 0x44
call fcn.00476eb1
mov ecx, eax
add esp, 4
mov dword [esp + 0x44], ecx
test ecx, ecx
mov byte [esp + 0x348], 0xe
je 0x42b4ef
mov edx, dword [esi + 0x4e8]
mov eax, 0x51eb851f
imul edx, dword [ebp]
imul edx
mov edi, dword [esi + 0x4e0]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push edi
push esi
call fcn.00403b40
jmp 0x42b4f1
xor eax, eax
mov dword [ebx], eax
add ebp, 4
add ebx, 4
cmp ebp, 0x48a5d4
mov byte [esp + 0x348], 0xd
jb 0x42b492
lea ecx, [esp + 0xd8]
mov dword [esp + 0x348], 0xffffffff
call fcn.0040b3f0
mov ebp, dword [0x489488]
xor ebx, ebx
mov edi, dword [esi + 0x190]
push 0x49bb84
mov ecx, edi
call fcn.00417900
cmp eax, ebx
jge 0x42b554
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x18]
jmp 0x42b55a
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 ebp
test eax, eax
je 0x42b5ad
mov dword [esi + 0x478], 0x49bc8c
mov dword [esi + 0x2b8], 1
mov edi, dword [esi + 0x190]
push 0x49b400
mov ecx, edi
call fcn.00417900
cmp eax, ebx
jge 0x42b5d9
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x18]
jmp 0x42b5df
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 ebp
test eax, eax
je case.0x42a537.5
mov ecx, esi
call fcn.0042c520
jmp case.0x42a537.5
cmp ebp, 0x22
je 0x42b63c
cmp ebp, 0x21
jne case.0x42a537.5
cmp ebx, edx
jne case.0x42a537.5
mov edi, ebp
mov eax, dword [esi + 0x44c]
sub edi, 0x22
mov ecx, dword [0x49e2a4]
neg edi
sbb edi, edi
mov dword [esp + 0x10], ecx
and edi, 0xfffffffe
inc edi
add edi, eax
mov ebp, 0xf
mov eax, str.system_status_bg.scn
mov dword [esp + 0x348], ebp
je 0x42b67b
mov eax, str.system_status_bg_d.scn
push edi
lea edx, [esp + 0x14]
push eax
push edx
call fcn.004754c2
mov eax, dword [esp + 0x1c]
add esp, 0xc
push eax
call fcn.00401ab0
mov ecx, eax
call fcn.004024e0
test eax, eax
je 0x42b76d
mov dword [esi + 0x44c], edi
mov edi, dword [esi + 0x190]
test edi, edi
je 0x42b6c3
mov ecx, edi
call fcn.00417700
push edi
call fcn.00476eda
add esp, 4
push 0x44
call fcn.00476eb1
mov edi, eax
add esp, 4
mov dword [esp + 0x44], edi
test edi, edi
mov byte [esp + 0x348], 0x10
je 0x42b71a
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.004766d9
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], 0x11
call fcn.004172a0
jmp 0x42b71c
xor eax, eax
mov dword [esi + 0x190], eax
mov al, byte [esp + 0x14]
test al, 2
mov dword [esp + 0x348], ebp
je 0x42b73a
lea ecx, [esp + 0x6c]
call fcn.00476964
sub esp, 0x10
mov edx, dword [0x4990c0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4990c4]
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 0x49a2fc
mov ecx, esi
call fcn.00435c30
lea ecx, [esp + 0x10]
mov dword [esp + 0x348], 0xffffffff
call fcn.00476964
jmp case.0x42a537.5
mov edi, dword [esi + 0x1c]
call dword [0x489440]
cmp eax, edi
je case.0x42a537.5
cmp ebp, 0x26
jne 0x42b829
mov ecx, dword [esi + 0x43c]
test ecx, ecx
jle 0x42a6b5
mov eax, dword [esi + 0x440]
dec ecx
cmp eax, ecx
mov dword [esi + 0x43c], ecx
jl 0x42b7c1
mov eax, ecx
mov ebx, dword [esi + 0x444]
mov edx, ecx
sub edx, ebx
mov dword [esi + 0x440], eax
inc edx
cmp eax, edx
jg 0x42b7d8
mov eax, edx
mov dword [esi + 0x440], eax
mov edx, dword [esi + 0x898]
mov eax, ecx
cmp eax, edx
jge 0x42b803
test eax, eax
jl 0x42b803
mov edx, dword [esi + 0x890]
mov edi, eax
dec eax
test edi, edi
je 0x42b805
inc eax
mov edx, dword [edx]
dec eax
jne 0x42b7fc
jmp 0x42b805
xor edx, edx
mov eax, dword [edx + 8]
mov edx, dword [esi + 0x304]
cmp eax, edx
je 0x42b8d0
mov dword [esi + 0x440], ecx
push eax
mov ecx, esi
call fcn.00434300
jmp 0x42b8d0
cmp ebp, 0x28
jne 0x42b915
mov ecx, dword [esi + 0x898]
mov eax, dword [esi + 0x43c]
dec ecx
cmp eax, ecx
jge 0x42b908
mov ecx, dword [esi + 0x440]
inc eax
cmp ecx, eax
mov dword [esi + 0x43c], eax
jl 0x42b85a
mov ecx, eax
mov ebx, dword [esi + 0x444]
mov edx, eax
sub edx, ebx
mov dword [esi + 0x440], ecx
inc edx
cmp ecx, edx
jg 0x42b871
mov ecx, edx
mov dword [esi + 0x440], ecx
mov ecx, dword [esi + 0x898]
cmp eax, ecx
jge 0x42b89a
test eax, eax
jl 0x42b89a
mov ecx, dword [esi + 0x890]
mov edx, eax
dec eax
test edx, edx
je 0x42b89c
inc eax
mov ecx, dword [ecx]
dec eax
jne 0x42b893
jmp 0x42b89c
xor ecx, ecx
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x304]
cmp eax, ecx
je 0x42b8d0
push eax
mov ecx, esi
call fcn.00434300
mov eax, dword [esi + 0x43c]
mov ebp, dword [esi + 0x444]
sub eax, ebp
xor ecx, ecx
inc eax
test eax, eax
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x440], eax
sub esp, 0x10
mov edx, dword [0x4990c0]
mov ebx, esp
xor eax, eax
mov edi, dword [0x4990c4]
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 0x49a2fc
mov ecx, esi
call fcn.00435c30
jmp 0x42a6b5
test ebx, ebx
jne 0x42a6b5
jmp 0x42a6ae
cmp ebp, 0xd
je 0x42b923
cmp ebp, 0x20
jne case.0x42a537.5
test ebx, ebx
jmp 0x42a69b
mov ecx, dword [esi + 0x2a0]
cmp ecx, edx
je 0x42b94b
mov eax, dword [esp + 0x354]
mov edx, dword [ecx]
push edi
push eax
push ebp
call dword [edx + 0x18]
test eax, eax
jne case.0x42a537.5
mov eax, dword [esi + 0x470]
mov ecx, esi
test eax, eax
je 0x42b961
call fcn.00426dd0
jmp 0x42a6b5
call fcn.00434c70
test eax, eax
je 0x42b99c
sub esp, 0x10
xor eax, eax
mov ebx, esp
xor ecx, ecx
mov dword [esi + 0x2e0], ecx
mov edx, dword [0x4990c0]
mov edi, dword [0x4990c4]
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 0x42a6b5
mov eax, dword [esi + 0xde4]
add eax, 0xfffffffc
cmp eax, 0xb
ja case.0x42b9b6.7
xor ecx, ecx
mov cl, byte [eax + 0x42bcbc]
jmp dword [ecx*4 + 0x42bcac]
cmp ebp, 0xd
je 0x42b9dc
jmp 0x42b9d3
cmp ebp, 0x26
je 0x42b9f0
cmp ebp, 0x28
je 0x42b9f0
cmp ebp, 0xd
je 0x42b9dc
cmp ebp, 0x20
jne 0x42bb85
test ebx, ebx
jne case.0x42a537.5
mov ecx, esi
call fcn.0042bda0
jmp 0x42a6b5
mov edx, dword [esi + 0x2b4]
test edx, edx
jl 0x42ba1c
mov eax, ebp
mov ecx, dword [esi + 0x8d0]
sub eax, 0x26
neg eax
sbb eax, eax
and eax, 2
dec eax
add eax, ecx
add eax, edx
cdq
idiv ecx
mov dword [esi + 0x2b4], edx
jmp 0x42ba30
mov eax, dword [esi + 0x8d0]
test eax, eax
jle 0x42ba3c
mov dword [esi + 0x2b4], 0
push 0x49a2fc
mov ecx, esi
call fcn.00435c30
mov ecx, dword [esi + 0x138]
push 0
call fcn.00417d40
jmp 0x42a6b5
cmp ebp, 0x26
je 0x42ba78
cmp ebp, 0x28
je 0x42ba78
cmp ebp, 0x25
je 0x42ba78
cmp ebp, 0x27
je 0x42ba78
cmp ebp, 0xd
je 0x42ba70
cmp ebp, 0x20
jne 0x42bb85
test ebx, ebx
jne case.0x42a537.5
lea edx, [esp + 0x34]
push edx
call dword [0x489464]
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [0x489468]
add ebp, 0xfffffff3
cmp ebp, 0x1b
ja case.0x42baa6.18
xor edx, edx
mov dl, byte [ebp + 0x42bce0]
jmp dword [edx*4 + 0x42bcc8]
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.0x42baa6.18
mov edx, dword [esp + 0x38]
mov ecx, dword [0x4990c4]
dec ecx
lea eax, [edx + 0x10]
cmp eax, ecx
jge 0x42babe
mov dword [esp + 0x38], eax
jmp case.0x42baa6.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.0x42baa6.18
mov edx, dword [esp + 0x34]
mov ecx, dword [0x4990c0]
dec ecx
lea eax, [edx + 0x10]
cmp eax, ecx
jge 0x42baed
mov dword [esp + 0x34], eax
jmp case.0x42baa6.18
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl case.0x42baa6.18
cmp ecx, dword [0x4990c0]
jge case.0x42baa6.18
mov edx, dword [esp + 0x38]
test edx, edx
jl case.0x42baa6.18
cmp edx, dword [0x4990c4]
jge case.0x42baa6.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.00428980
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x34]
push edx
push eax
call dword [0x4894d4]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
push edx
call dword [0x48942c]
jmp 0x42a6b5
cmp ebp, 0x28
je 0x42b9e4
cmp ebp, 0xd
je 0x42bb78
cmp ebp, 0x20
jne 0x42bb85
test ebx, ebx
je 0x42b9e4
jmp case.0x42a537.5
test ebx, ebx
jne case.0x42a537.5
mov ebp, 0x48a638
mov edi, 0x4a9704
mov eax, dword [esp + 0x350]
mov ecx, dword [edi - 4]
cmp eax, ecx
jne 0x42bbca
push 0x10
call dword [0x489430]
xor ecx, ecx
test ax, ax
mov eax, dword [edi]
setl cl
cmp eax, ecx
jne 0x42bbca
mov edx, dword [ebp]
mov ecx, esi
push edx
call fcn.00428540
test eax, eax
jne 0x42bbde
add edi, 8
inc ebx
add ebp, 0x10
cmp edi, 0x4a974c
jb 0x42bb97
jmp case.0x42a537.5
mov eax, ebx
shl eax, 4
mov ecx, dword [eax + 0x48a638]
push ecx
mov ecx, esi
call fcn.00428780
jmp case.0x42a537.5