Function at 0x822602
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x5d895c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4e4
mov ecx, dword [esp + 0x4fc]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x518]
push ebx
sub eax, edx
push ebp
xor ebx, ebx
push esi
mov dword [esp + 0x30], eax
mov eax, dword [ecx]
push edi
mov edi, dword [eax + 4]
cmp edi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x1c], edi
je 0x822c12
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x82267e
mov eax, dword [esp + 0x508]
mov ecx, dword [eax + 4]
mov dword [edi + 0x44], ecx
mov edx, dword [esp + 0x508]
mov eax, dword [edx]
test eax, eax
je 0x822697
cmp dword [edi + 0x44], 0x6833c0
je 0x822697
mov dword [edi + 0x44], eax
test dword [edi + 0x28], 0x20000
mov esi, dword [edi + 0x44]
je 0x8226be
mov eax, dword [esi + 0x10]
push 0
push 0x10
push eax
call fcn.00843872
add esp, 0xc
test eax, eax
mov dword [edi + 0x44], eax
je 0x822c42
mov eax, dword [edi + 0x18]
cmp eax, 0xf8
je 0x8226d3
cmp eax, 0xf7
jne 0x822aa1
mov ebx, dword [edi + 0x34]
test ebx, ebx
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x18], ecx
jne 0x822851
mov edx, dword [esp + 0x504]
mov eax, dword [edx + 0x1250]
mov eax, dword [eax + 0x28]
lea esi, [edi + 0x38]
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.0083c122
mov dword [edi + 0x34], eax
mov ebx, eax
xor eax, eax
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x6833c0
mov esi, dword [esi]
mov dword [esp + 0x84], esi
mov esi, dword [esi + 4]
cmp esi, eax
mov dword [esp + 0x4fc], eax
je 0x822812
xor ebp, ebp
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.0081f982
add esp, 0x10
test eax, eax
je 0x8227c8
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov esi, dword [esi]
lea edx, [esp + 0x98]
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ecx
push esi
lea ecx, [esp + 0x50]
call fcn.008201f2
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
inc eax
push eax
push ecx
call fcn.00841822
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 8
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 8]
mov dword [edx + ebp], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [eax + ebp], ecx
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + ebp]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + ebp]
push ecx
push eax
call dword [edx + 0x18]
mov edx, dword [ebx + 0xc]
mov dword [edx + ebp], eax
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + ebp]
mov byte [eax + edx], 0
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov esi, dword [eax + 4]
add esp, 0xc
add ebp, 4
test esi, esi
mov dword [esp + 0x84], eax
jne 0x822742
lea eax, [edi + 0x38]
xor esi, esi
mov dword [eax + 8], esi
mov dword [eax], 0x75f7e4
mov dword [eax + 4], eax
cmp dword [esp + 0x48], esi
mov dword [esp + 0x4fc], 0xffffffff
je 0x822851
mov ecx, dword [esp + 0x3c]
push ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], esi
call fcn.00841642
add esp, 4
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov ecx, dword [edi + 0x14]
mov esi, dword [esp + 0x18]
xor ebp, ebp
cmp ecx, ebp
je 0x82290d
cmp esi, dword [ecx + 0x2c]
je 0x82290d
mov dword [esp + 0xb4], 0x5e40c8
mov edx, dword [esp + 0x504]
mov eax, dword [edx + 0x1250]
mov edx, dword [eax + 0x2c]
xor ecx, ecx
cmp edx, 2
setne cl
mov dword [esp + 0x4fc], 1
cmp ecx, ebp
mov dword [esp + 0x30], ecx
je 0x8228b9
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x508]
push eax
add ecx, 0x10
call fcn.007e9f92
mov ecx, dword [edi + 0x14]
mov edx, dword [ecx]
push esi
call dword [edx + 0xe4]
mov dword [edi + 0x14], eax
cmp dword [esp + 0x30], ebp
je 0x8228ec
lea eax, [esp + 0xb4]
push eax
mov eax, dword [esp + 0x508]
mov ecx, dword [eax + 0x1250]
push ecx
lea ecx, [eax + 0x10]
call fcn.007e9fc2
mov ecx, dword [edi + 0x14]
cmp ecx, ebp
je 0x822c81
mov dword [esp + 0x4fc], 0xffffffff
mov dword [esp + 0xb4], 0x5e40c8
cmp dword [edi + 0x18], 0xf8
jne 0x8229ea
cmp ecx, ebp
je 0x8229c7
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], 0x6833c0
mov edx, dword [ecx]
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x500], 2
call dword [edx + 0x3c]
mov edx, dword [esi + 0x5c]
mov ebp, eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
push eax
push ecx
push esi
call dword [edx + 0x18]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0xb0]
push ecx
push esi
mov dword [ebp + 4], eax
mov ebp, dword [ebp]
push eax
push ebp
push ebx
call fcn.0083af72
mov eax, dword [esp + 0x44]
xor ebp, ebp
add esp, 0x28
cmp eax, ebp
jne 0x822c97
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x4fc], 0xffffffff
je 0x8229c7
mov edx, dword [esp + 0x50]
push edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebp
call fcn.00841642
add esp, 4
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
lea ebp, [edi + 0x1c]
push ebp
lea eax, [esp + 0x2c]
push eax
push ebx
push esi
call fcn.00820ad2
mov ecx, dword [ebx]
mov eax, dword [ebp]
add esp, 0x10
dec ecx
add eax, ecx
mov dword [ebp], eax
jmp 0x822a91
cmp ecx, ebp
je 0x822a7e
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x6833c0
mov edx, dword [ecx]
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x500], 3
call dword [edx + 0x3c]
mov edx, dword [esi + 0x5c]
mov ebp, eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
push eax
push ecx
push esi
call dword [edx + 0x18]
push esi
mov dword [ebp + 4], eax
mov ebp, dword [ebp]
push eax
push ebp
push ebx
call fcn.0083ae22
add esp, 0x1c
test eax, eax
je 0x822cce
mov eax, dword [esp + 0x70]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x4fc], 0xffffffff
je 0x822a7e
mov eax, dword [esp + 0x64]
push eax
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], ebp
call fcn.00841642
add esp, 4
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
lea ecx, [esp + 0x28]
push ecx
lea ebp, [edi + 0x1c]
push ebp
push ebx
push esi
call fcn.00820ad2
add esp, 0x10
cmp dword [ebp], 0x2fd
jbe 0x822aa1
mov dword [ebp], 0x2fd
mov ecx, edi
call fcn.00770402
test byte [edi + 0x28], 0x10
jne 0x822ac4
cmp dword [edi + 0x18], 0xfd
jne 0x822ace
mov edx, dword [esp + 0x508]
cmp dword [edx + 0x58], 1
je 0x822ace
mov eax, dword [esp + 0x518]
or dword [eax], 1
test byte [edi + 0x28], 1
jne 0x822ad8
inc dword [esp + 0x24]
mov eax, dword [edi]
push eax
call fcn.0083bf32
add esp, 4
test eax, eax
jne 0x822d07
mov eax, dword [esp + 0x50c]
mov ebx, dword [eax]
mov esi, dword [ebx + 4]
xor ebp, ebp
cmp esi, edi
mov dword [esp + 0xac], eax
je 0x822bdf
mov edx, dword [esi]
mov eax, dword [0x75d678]
mov ecx, dword [eax + 0x60]
push edx
mov edx, dword [edi]
push edx
push eax
call dword [ecx + 0x18]
add esp, 0xc
test eax, eax
je 0x822b37
mov dword [esp + 0xac], ebx
mov ebx, dword [ebx]
mov esi, dword [ebx + 4]
inc ebp
cmp esi, edi
jne 0x822b08
jmp 0x822bdf
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x20], ebx
jl 0x822d1e
cmp ebp, ebx
jge 0x822d1e
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x18]
mov dword [edi + 0x18], ecx
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x822b6a
mov edx, dword [esp + 0x508]
mov eax, dword [edx + 4]
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x1c], eax
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x2c], ecx
mov ecx, edi
call fcn.00770402
mov edx, dword [esi + 0x24]
mov dword [edi + 0x24], edx
mov eax, dword [esi + 0x30]
mov dword [edi + 0x30], eax
test byte [edi + 0x28], 1
jne 0x822b96
dec dword [esp + 0x24]
mov ecx, dword [esi + 0x28]
mov esi, dword [esp + 0x50c]
mov dword [edi + 0x28], ecx
mov edi, dword [esp + 0xac]
mov eax, dword [edi]
cmp eax, dword [esi + 4]
mov ebp, dword [eax]
jne 0x822bd1
mov ecx, dword [esi]
cmp ecx, eax
jne 0x822bbe
mov dword [esi + 4], esi
jmp 0x822bd1
mov edx, dword [ecx]
cmp edx, eax
je 0x822bce
mov eax, dword [edi]
mov ecx, edx
mov edx, dword [ecx]
cmp edx, eax
jne 0x822bc6
mov dword [esi + 4], ecx
mov dword [edi], ebp
mov ecx, dword [esi + 8]
dec ecx
dec ebx
mov dword [esi + 8], ecx
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
mov ecx, dword [esp + 0x20]
mov edi, dword [eax + 4]
inc ecx
test edi, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x1c], edi
jne 0x82266a
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x50c]
mov edi, dword [ecx]
mov esi, dword [edi + 4]
xor edx, edx
xor ebp, ebp
cmp esi, edx
je 0x822f73
mov ecx, dword [esi + 0x18]
lea eax, [ecx - 6]
cmp eax, 0xf9
ja 0x822e71
movzx eax, byte [eax + 0x4bf410]
jmp dword [eax*4 + 0x4bf3f0]
mov eax, dword [esi + 0x10]
push 4
push 0x6033b4
push 0x3c
push eax
lea ecx, [esp + 0xc4]
push ecx
call fcn.00916ea2
add esp, 0xc
push eax
call fcn.00916ea2
lea edx, [esp + 0xc0]
push edx
push 0
push 0x4f9
call fcn.00844652
add esp, 0x18
jmp 0x822ee1
mov eax, dword [edi]
push eax
push ebp
push 0x42b
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov ecx, dword [edi]
push ecx
push ebp
push 0x42b
call fcn.00844652
mov eax, dword [esp + 0x68]
add esp, 0xc
cmp eax, ebp
je 0x822ee1
mov edx, dword [esp + 0x50]
push edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebp
call fcn.00841642
add esp, 4
jmp 0x822ee1
mov eax, dword [edi]
push eax
xor esi, esi
push esi
push 0x42b
call fcn.00844652
mov eax, dword [esp + 0x7c]
add esp, 0xc
cmp eax, esi
je 0x822ee1
mov ecx, dword [esp + 0x64]
push ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], esi
call fcn.00841642
add esp, 4
jmp 0x822ee1
mov edx, dword [edi]
push edx
push 0
push 0x48e
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov eax, dword [edi]
push eax
push 0
push 0x424
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
shl edx, 5
or edx, ecx
mov ecx, eax
and ecx, 0x40
shr eax, 5
or ecx, 0x20
shl edx, 3
shr ecx, 4
not eax
or edx, ecx
and eax, 1
or edx, eax
mov dword [esi + 0x58], edx
test byte [esi + 0x28], 1
jne 0x822ea6
or dword [esi + 0x58], 0x8000
mov edx, dword [esi + 0x30]
and edx, 0x7f
cmp dl, 0xf
mov dword [esi + 0x54], ebp
jne 0x822eb8
inc dword [esp + 0x2c]
mov ecx, dword [esi + 0x2c]
mov edi, dword [edi]
mov esi, dword [edi + 4]
xor edx, edx
add ebp, ecx
cmp esi, edx
jne 0x822c23
cmp dword [esp + 0x10], 1
jle 0x822f1f
push edx
push 0x50d
call fcn.00844652
add esp, 8
or eax, 0xffffffff
mov ecx, dword [esp + 0x4f4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4f0
ret
mov eax, dword [esp + 0x2c]
cmp eax, 1
jg 0x8239db
cmp eax, edx
je 0x822f4f
mov ecx, dword [esp + 0x51c]
mov edx, dword [ecx]
call dword [edx + 0x12c]
test eax, 0x800000
je 0x822f4f
push 0
push 0x48c
jmp 0x822ed9
test ebx, ebx
je 0x822f73
mov ecx, dword [esp + 0x51c]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test ah, 2
je 0x822f73
push 0
push 0x48b
jmp 0x822ed9
mov ecx, dword [esp + 0x524]
mov edx, dword [esp + 0x510]
xor ebp, ebp
mov dword [ecx], ebp
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp edi, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x84], eax
mov ebx, 0x75f8cc
je 0x823125
cmp dword [edi], 5
jne 0x822fed
mov eax, dword [edi + 0x28]
test eax, eax
je 0x823105
cmp eax, dword [edi + 0x10]
je 0x823105
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x822fcb
mov edi, 0x603398
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x3c0]
push edx
push edi
push 0
push 0x4d7
call fcn.00844652
add esp, 0x10
jmp 0x822ee1
mov eax, dword [esp + 0x524]
mov edx, dword [eax]
mov esi, dword [esp + 0x51c]
inc edx
mov dword [eax], edx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x148]
cmp eax, 0x10
jbe 0x823016
mov eax, 0x10
jmp 0x823020
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x148]
cmp dword [edi + 0x10], eax
ja 0x823153
mov eax, dword [edi + 0x14]
test eax, eax
je 0x823045
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x823033
sub eax, edx
cmp eax, 0x40
ja 0x823168
cmp dword [edi], 5
je 0x8230c0
mov eax, dword [esp + 0x510]
mov ebx, dword [eax]
mov esi, dword [ebx + 4]
cmp esi, edi
je 0x8230c0
lea esp, [esp]
cmp dword [esi], 5
je 0x82307e
cmp dword [esi + 0x14], 0x75f8cc
je 0x82307e
push esi
push edi
call fcn.007e8c02
add esp, 8
test eax, eax
je 0x823089
mov ebx, dword [ebx]
mov esi, dword [ebx + 4]
cmp esi, edi
jne 0x823062
jmp 0x8230c0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x8230b9
mov eax, dword [edi + 0x18]
test eax, eax
je 0x82309f
mov ecx, dword [edi + 0x10]
cmp ecx, dword [esi + 0x10]
jb 0x8230b9
mov eax, dword [esp + 0x524]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x14], 0x75f8cc
mov ecx, dword [eax]
sub ebp, edx
dec ecx
mov dword [eax], ecx
jmp 0x8230c0
mov dword [edi + 0x14], 0x75f8cc
cmp dword [edi + 0x14], 0x75f8cc
je 0x8230ce
add ebp, dword [edi + 0x10]
jmp 0x8230d7
mov eax, dword [esp + 0x524]
dec dword [eax]
mov eax, dword [edi + 0x14]
test eax, eax
je 0x823105
mov ecx, dword [esp + 0x514]
test ecx, ecx
jne 0x823105
mov esi, dword [0x67ea54]
mov ecx, dword [0x75d678]
mov edx, dword [ecx + 0x60]
push esi
push eax
push ecx
call dword [edx + 0x18]
add esp, 0xc
test eax, eax
je 0x823180
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov edi, dword [eax + 4]
test edi, edi
mov dword [esp + 0x84], eax
jne 0x822fa6
mov ebx, 0x75f8cc
mov ecx, dword [esp + 0x51c]
call fcn.00820822
mov edx, dword [esp + 0x524]
mov ecx, dword [edx]
cmp ecx, eax
jbe 0x823198
push eax
push 0
push 0x42d
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
push eax
push 0
push 0x42e
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov eax, dword [edi + 0x14]
push eax
push 0
push 0x423
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov ecx, dword [edi + 0x14]
push ecx
push 0
push 0x500
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
lea eax, [ecx + ecx*4]
shl eax, 3
push eax
call fcn.0083d822
mov edi, dword [esp + 0x524]
lea ecx, [ebp + ebp*2]
mov esi, eax
shl ecx, 3
push ecx
mov dword [esp + 0x18], esi
mov dword [edi], esi
call fcn.0083d822
mov dword [esp + 0x20], eax
mov eax, dword [edi]
add esp, 8
test eax, eax
je 0x822ee1
mov eax, dword [esp + 0x18]
xor edx, edx
cmp eax, edx
je 0x822ee1
mov eax, dword [esp + 0x510]
mov ebp, dword [eax]
mov edi, dword [ebp + 4]
xor ecx, ecx
cmp edi, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x14], edi
je 0x82381a
cmp dword [edi + 0x14], ebx
mov dword [esp + 0x28], edx
jne 0x823230
jmp 0x823212
mov ebp, dword [ebp]
mov edi, dword [ebp + 4]
cmp edi, edx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x14], edi
je 0x823806
cmp dword [edi + 0x14], ebx
je 0x823212
mov eax, dword [edi]
add eax, 0xfffffffe
cmp eax, 3
ja 0x82325e
jmp dword [eax*4 + 0x4bf50c]
mov dword [esi + 4], 1
cmp dword [edi + 0x18], edx
je 0x823271
or dword [esi + 4], 0x2000
movzx edx, byte [edi + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esi + 8], edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 4]
mov dword [esi + 0x14], ecx
cmp dword [edi], 3
jne 0x8232a7
mov ecx, dword [esp + 0x51c]
mov edx, dword [ecx]
call dword [edx + 0x12c]
test eax, 0x200000
je 0x82383e
mov eax, dword [esi + 4]
test ah, 4
je 0x8232da
cmp dword [esi + 8], 1
je 0x8232e4
mov eax, dword [0x75d294]
mov ecx, dword [eax + 0x348]
push 0x603388
push 0
push ecx
push 0x4ba
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
cmp dword [esi + 0x14], 2
je 0x82384a
mov eax, dword [edi + 8]
mov ebx, dword [eax + 4]
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x94], eax
je 0x823786
mov eax, dword [esp + 0x50c]
mov edi, dword [eax]
mov esi, dword [edi + 4]
xor ebp, ebp
test esi, esi
je 0x823338
mov edx, dword [esi]
mov eax, dword [0x75d678]
mov ecx, dword [eax + 0x60]
push edx
mov edx, dword [ebx]
push edx
push eax
call dword [ecx + 0x18]
add esp, 0xc
test eax, eax
je 0x82335c
mov edi, dword [edi]
mov esi, dword [edi + 4]
inc ebp
test esi, esi
jne 0x823315
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x120]
push eax
push 0
push edx
push 0x430
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 8]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x823399
jmp 0x823372
mov eax, dword [eax]
mov ecx, dword [0x75d678]
mov edx, dword [ecx + 0x60]
push eax
mov eax, dword [ebx]
push eax
push ecx
call dword [edx + 0x18]
add esp, 0xc
test eax, eax
je 0x823895
mov edi, dword [edi]
mov eax, dword [edi + 4]
cmp eax, ebx
jne 0x823372
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 3
jne 0x82340e
mov eax, dword [esi + 0x18]
cmp eax, 0xfe
je 0x8233c8
cmp eax, 0xfd
je 0x8233c8
mov edx, dword [esi + 0x58]
and edx, 0x402
cmp edx, 0x400
jne 0x8238b9
mov eax, dword [esi + 0x44]
cmp eax, 0x6833c0
je 0x8238b9
cmp dword [eax + 0x4c], 1
ja 0x8238b9
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x8233f0
cmp eax, ecx
jne 0x8238b9
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x58]
and eax, 0x402
sub eax, 0x400
neg eax
sbb eax, eax
inc eax
mov dword [ebx + 4], eax
jmp 0x8234e4
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx + 0x50]
imul edx, dword [ebx + 4]
mov dword [ebx + 4], edx
mov eax, dword [esi + 0x58]
and eax, 0x402
cmp eax, 0x400
jne 0x82344d
mov ecx, dword [esp + 0x51c]
mov edx, dword [ecx]
call dword [edx + 0x12c]
test ah, 4
je 0x8238dd
mov eax, dword [ebx + 4]
test eax, eax
je 0x823901
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 4
jne 0x823464
mov eax, dword [ebx + 4]
test eax, eax
jne 0x823464
mov dword [ebx + 4], 0x20
mov eax, dword [esi + 0x28]
test al, 1
jne 0x8234b9
cmp dword [ecx], 0
jne 0x82348d
mov ecx, dword [esi + 0x58]
or eax, 1
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x24]
and ecx, 0xffff7fff
dec eax
mov dword [esi + 0x58], ecx
mov dword [esp + 0x24], eax
jmp 0x823495
mov eax, dword [esp + 0x10]
or dword [eax + 4], 0x40
mov ecx, dword [esp + 0x51c]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test al, al
jns 0x823925
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 4
je 0x823949
mov edx, dword [esi + 0x30]
and edx, 0x7f
cmp dl, 0xf
jne 0x8234e4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x8234e0
mov ecx, dword [esp + 0x51c]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test ah, 8
je 0x8234e4
dec dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov word [eax + 0x12], bp
movzx ecx, word [esi + 0x54]
mov dword [eax + 4], ecx
mov dx, word [esi + 0x58]
mov word [eax + 0x10], dx
mov eax, dword [ebx + 4]
test eax, eax
mov edi, dword [esi + 0x2c]
je 0x823616
mov ecx, dword [esi + 0x58]
mov edx, ecx
and edx, 0x402
cmp edx, 0x400
jne 0x8235b5
mov ebx, dword [esp + 0x51c]
mov ecx, ebx
mov edi, eax
call fcn.00807352
cmp edi, eax
ja 0x823543
mov ecx, ebx
call fcn.00820852
cmp edi, eax
jbe 0x82361e
mov ecx, ebx
call fcn.00820852
mov ecx, ebx
mov edi, eax
call fcn.00807352
cmp eax, edi
mov ecx, ebx
jae 0x823560
call fcn.00807352
jmp 0x823565
call fcn.00820852
mov edi, eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 2
push edi
jne 0x8239a7
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x11c]
push edx
lea eax, [esp + 0xfc]
push 0x200
push eax
call fcn.00916df2
mov edx, dword [esp + 0x514]
lea ecx, [esp + 0x104]
push ecx
push 0x42f
push 1
push edx
call fcn.007edf02
add esp, 0x20
jmp 0x82361e
mov edx, ecx
and edx, 0x802
cmp edx, 0x800
je 0x8235fb
cmp eax, edi
ja 0x823955
test cl, 0x78
jne 0x8235f2
mov ecx, dword [esp + 0x51c]
mov eax, dword [ecx]
call dword [eax + 0x12c]
test eax, 0x100000
je 0x8235fb
mov ecx, dword [esp + 0x10]
test byte [ecx + 4], 1
je 0x8235fb
cmp dword [ebx + 4], edi
jne 0x823955
mov ecx, dword [esp + 0x51c]
mov edx, dword [ecx]
call dword [edx + 0x12c]
test eax, 0x100000
jne 0x82361e
mov edi, dword [ebx + 4]
jmp 0x82361e
test edi, edi
je 0x823961
mov ebx, dword [esp + 0x51c]
mov ecx, ebx
call fcn.00820852
cmp edi, eax
jbe 0x823686
mov ecx, ebx
call fcn.00820852
mov ebx, dword [esp + 0x14]
mov edi, eax
cmp dword [ebx], 2
push edi
jne 0x8239a7
mov eax, dword [0x75d294]
mov ecx, dword [eax + 0x11c]
push ecx
lea edx, [esp + 0x2fc]
push 0x200
push edx
call fcn.00916df2
mov ecx, dword [esp + 0x514]
lea eax, [esp + 0x304]
push eax
push 0x42f
push 1
push ecx
call fcn.007edf02
add esp, 0x20
jmp 0x82368a
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x518]
mov word [edx + 0xc], di
cmp byte [eax], 0
js 0x8236e0
cmp edi, 8
jb 0x8236e0
mov eax, dword [esi + 0x18]
cmp eax, 0xfe
je 0x8236bc
cmp eax, 0xfd
je 0x8236bc
mov eax, dword [esi + 0x58]
test ah, 4
je 0x8236e0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x8236d6
mov eax, dword [esi + 0x58]
test ah, 4
je 0x8236d6
mov ebp, dword [esp + 0x10]
or dword [ebp + 4], 0x20
jmp 0x8236e4
mov ebp, dword [esp + 0x10]
or dword [ebp + 4], 2
jmp 0x8236e4
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
add edx, edi
add ecx, 0x18
test eax, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], ecx
jne 0x82375c
cmp dword [ebx], 0
jne 0x823722
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x823985
mov ebx, dword [0x67ea54]
mov dword [esp + 0x1c], 1
jmp 0x823741
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x823741
mov ecx, dword [esp + 0x520]
mov edx, dword [ecx]
mov ecx, dword [esi]
push edx
mov eax, ebp
call fcn.00820b82
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x520]
mov eax, dword [eax]
mov edi, ebp
call fcn.00820b42
test eax, eax
jne 0x823991
mov dword [ebp + 0x1c], ebx
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
test ebx, ebx
mov dword [esp + 0x94], eax
jne 0x823303
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x8239bb
push eax
call fcn.0083bf32
add esp, 4
test eax, eax
jne 0x8239bb
test byte [esi + 4], 0x40
jne 0x8237b4
mov dword [esp + 0x30], 1
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x51c]
movzx edx, bx
mov dword [esi], edx
call fcn.00807352
cmp ebx, eax
jbe 0x8237d6
cmp dword [edi], 3
jne 0x8239a6
mov ecx, dword [esp + 0x38]
add esi, 0x28
mov dword [esp + 0x10], esi
mov ebx, 0x75f8cc
xor edx, edx
mov ebp, dword [ebp]
mov edi, dword [ebp + 4]
inc ecx
cmp edi, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x14], edi
jne 0x823204
cmp dword [esp + 0x30], edx
jne 0x8239d3
cmp dword [esp + 0x1c], edx
jne 0x8239d3
mov ecx, dword [esp + 0x51c]
mov edx, dword [ecx]
call dword [edx + 0x12c]
test ah, 0x10
je 0x8239d3
push 0
push 0x495
jmp 0x822ed9
push 0
push 0x4be
jmp 0x822ed9
test byte [esi + 8], 1
push 0x60337c
push 0
je 0x823876
mov edx, dword [0x75d294]
mov eax, dword [edx + 0x348]
push eax
push 0x4ba
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x3ac]
push edx
push 0x4d3
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0xf0]
push eax
push 0
push edx
push 0x424
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x46c]
push eax
push 0
push edx
push 0x503
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x124]
push eax
push 0
push edx
push 0x431
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x2a8]
push eax
push 0
push edx
push 0x492
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x1e4]
push eax
push 0
push edx
push 0x461
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
push 0
push 0x4e4
jmp 0x822ed9
push 0
push 0x441
jmp 0x822ed9
mov eax, dword [ebx]
mov ecx, dword [0x75d294]
mov edx, dword [ecx + 0x29c]
push eax
push 0
push edx
push 0x48f
call fcn.00844822
add esp, 0x10
jmp 0x822ee1
push 0
push 0x42c
jmp 0x822ed9
push ebx
push 0
push 0x425
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
push eax
push 0
push 0x42f
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov eax, dword [esi + 0x1c]
push eax
push 0
push 0x500
call fcn.00844652
add esp, 0xc
jmp 0x822ee1
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x8239e7
push 0
push 0x433
jmp 0x822ed9
mov eax, dword [esp + 0x524]
mov ecx, dword [eax]
mov edx, dword [esp + 0x520]
mov eax, dword [edx]
push 0x4bc350
push 0x28
push ecx
push eax
call fcn.00851672
mov ecx, dword [esp + 0x518]
mov edx, dword [esp + 0x34]
add esp, 0x10
mov dword [ecx + 0x5c], edx
xor eax, eax
jmp 0x822ee4