Function at 0x100226d7
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10071d8f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d8
push ebx
xor ebx, ebx
mov dword [esp + 0x64], edx
push esi
push edi
mov dword [esp + 0x30], ecx
cmp dword [ecx + 0x10], ebx
jne 0x10022711
xor al, al
jmp 0x1002397b
push 3
lea ecx, [esp + 0x9c]
call fcn.1001a500
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x50], 0xa1f94964
mov dword [esp + 0x14], 0x1b0a
cmp dword [esp + 0x14], 0xb57
jge 0x100227cc
lea eax, [esp + 0x70]
mov dword [esp + 0x70], ebx
push eax
push 0x1000814c
call fcn.1005803b
pop ecx
pop ecx
mov ecx, dword [esp + 0x70]
mov edi, ebx
mov dword [esp + 0x14], ebx
mov esi, ebx
test ecx, ecx
je 0x100227a5
lea eax, [esp + 0x60]
mov dword [esp + 0x60], ebx
push eax
push 0x10008090
call fcn.1005803b
mov edx, dword [esp + 0x68]
pop ecx
pop ecx
mov ecx, edi
call fcn.10009ed4
cmp dword [esp + 0x60], esi
mov edi, eax
mov eax, dword [esp + 0x14]
cmovg esi, dword [esp + 0x60]
inc eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], eax
cmp eax, ecx
jb 0x10022769
mov eax, esi
cdq
idiv edi
sub eax, ecx
and eax, 0x80000001
jns 0x100227b8
dec eax
or eax, 0xfffffffe
inc eax
je 0x100227c1
push 0x100081b8
jmp 0x100227c6
push 0x100081c0
call fcn.100591b7
pop ecx
mov dword [esp + 0xc0], 0xd53a38d0
or esi, 0xffffffff
mov dword [esp + 0xbc], 0xfffffff8
mov dword [esp + 0xa4], esi
mov dword [esp + 0x14], 0x196f
cmp dword [esp + 0x14], 0x1007
push 2
pop edi
jge 0x10022a0a
lea eax, [esp + 0x68]
mov dword [esp + 0x48], ebx
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x6c], ebx
push eax
push 0x1000812c
call fcn.1005803b
mov eax, dword [esp + 0x54]
add esp, 0xc
xor ecx, ecx
inc eax
push 8
pop esi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100536dc
mov edi, eax
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], edi
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov eax, dword [esp + 0x48]
lea eax, [eax + 1]
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100536dc
mov esi, eax
pop ecx
xor ecx, ecx
mov dword [esp + 0x2c], esi
inc ecx
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
cmp eax, ecx
jl 0x100228bc
mov eax, dword [esp + 0x14]
lea edi, [esi + 8]
sub eax, esi
mov dword [esp + 0x34], eax
mov esi, eax
lea eax, [esi + edi]
push eax
push 0x10008164
call fcn.1005803b
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
mov dword [edi], ebx
inc ecx
mov dword [edi + 4], ebx
lea edi, [edi + 8]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
cmp ecx, eax
jle 0x1002288b
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x68], 0
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xc4], ebx
jle 0x10022928
mov edi, ebx
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xb8]
push eax
push 0x1000812c
call fcn.1005803b
mov eax, dword [esp + 0xc0]
add esp, 0xc
add dword [esi + eax*8], 1
adc dword [esi + eax*8 + 4], ebx
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x48]
cmp ecx, eax
jge 0x1002291d
or eax, 0xffffffff
add dword [esi + ecx*8 + 8], eax
adc dword [esi + ecx*8 + 0xc], eax
mov eax, dword [esp + 0x48]
inc edi
cmp edi, dword [esp + 0x68]
jl 0x100228d3
mov edi, dword [esp + 0x14]
push 2
pop ecx
cmp eax, ecx
jl 0x10022947
mov eax, dword [esi + ecx*8 - 8]
add dword [esi + ecx*8], eax
mov eax, dword [esi + ecx*8 - 4]
adc dword [esi + ecx*8 + 4], eax
inc ecx
mov eax, dword [esp + 0x48]
cmp ecx, eax
jle 0x1002292f
lea eax, [eax + 1]
mov byte [esp + 0x154], bl
push dword [esp + 0x154]
lea edx, [edi + eax*8]
mov ecx, edi
mov eax, edx
sub eax, edi
sar eax, 3
push eax
call fcn.100278c3
mov eax, dword [esp + 0x50]
mov ecx, esi
inc eax
mov byte [esp + 0x16c], bl
push dword [esp + 0x16c]
lea edx, [esi + eax*8]
mov eax, edx
sub eax, esi
sar eax, 3
push eax
call fcn.100278c3
mov eax, dword [esp + 0x58]
add esp, 0x10
mov dword [esp + 0x18], eax
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
cmp eax, 1
jl 0x100229ed
mov eax, dword [esp + 0x20]
add edi, 8
sub esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
push dword [edi + 4]
push dword [edi]
push dword [esi + edi + 4]
push dword [esi + edi]
call fcn.1005de10
mov ecx, dword [esp + 0x14]
lea edi, [edi + 8]
add ecx, eax
mov dword [esp + 0x14], ecx
adc ebx, edx
dec dword [esp + 0x18]
jne 0x100229bb
mov dword [esp + 0x14], ebx
xor ebx, ebx
mov eax, dword [esp + 0x14]
jmp 0x100229f5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
push ecx
push 0x10008100
call fcn.1005889b
add esp, 0xc
or esi, 0xffffffff
push 2
pop edi
push dword [esp + 0x94]
movdqa xmm0, xmmword [0x10008840]
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0xc0], 0xdf39281
push eax
push ebx
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], ebx
movdqu xmmword [esp + 0x1bc], xmm0
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
call fcn.1001fc84
mov byte [esp + 0x1ec], 1
lea ecx, [esp + 0xc8]
mov dword [esp + 0x14c], 9
mov dword [esp + 0x150], ebx
push edi
call fcn.1001a500
mov dword [esp + 0x10], ebx
jmp 0x10022a9e
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x98]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10022a8c
mov dword [esp + 0x10], ebx
jmp 0x10022ac1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 0xc7196a48
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10022aab
mov dword [esp + 0x50], edi
cmp dword [esp + 0x50], ebx
jl 0x10022b30
lea eax, [esp + 0xa4]
mov dword [esp + 0x13c], 0x3718bd85
push eax
lea eax, [esp + 0x140]
mov dword [esp + 0x15c], 0xfffffffe
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x64]
push eax
lea edx, [esp + 0xb0]
lea ecx, [esp + 0x170]
call fcn.1002226d
add esp, 0x18
dec dword [esp + 0x50]
jns 0x10022ad1
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xc0]
push eax
lea edx, [esp + 0x170]
lea ecx, [esp + 0xe8]
call fcn.100222d9
add esp, 0x20
cmp dword [esp + 0xc8], 0
je 0x10022baf
push dword [esp + 0xc8]
call fcn.10058dbb
pop ecx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
cmp dword [esp + 0x88], 0
je 0x10022bdb
push dword [esp + 0x88]
call fcn.10058dbb
pop ecx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x1ec], esi
cmp dword [esp + 0x98], 0
je 0x10022c0e
push dword [esp + 0x98]
call fcn.10058dbb
pop ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
push ebx
push 0x530
push 0x5069
lea eax, [esp + 0x78]
push eax
push 0x26f7
call fcn.1002649e
mov dword [esp + 0x28], 0x15e5
add esp, 0x14
cmp dword [esp + 0x14], 0x1335
jge 0x10022f03
lea eax, [esp + 0x54]
mov dword [esp + 0x5c], ebx
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x58], ebx
push eax
push 0x10008144
call fcn.1005803b
mov eax, dword [esp + 0x68]
add esp, 0xc
mov dword [esp + 0x34], ebx
mov esi, ebx
mov dword [esp + 0x18], esi
mov ecx, ebx
mov dword [esp + 0x14], ecx
mov edx, ebx
mov dword [esp + 0x2c], edx
test eax, eax
jle 0x10022d1d
mov ecx, dword [esp + 0x54]
mov edi, ebx
test ecx, ecx
jle 0x10022d09
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x1f]
mov byte [esp + 0x47], 0x61
push eax
lea eax, [esp + 0x4b]
mov byte [esp + 0x23], 0x61
push eax
push 0x10008340
call fcn.1005803b
mov al, byte [esp + 0x53]
add esp, 0xc
cmp al, 0x30
jne 0x10022cc5
cmp byte [esp + 0x1f], al
jne 0x10022cd2
inc dword [esp + 0x34]
jmp 0x10022cd3
cmp al, 0x31
jne 0x10022cd2
cmp byte [esp + 0x1f], al
jne 0x10022cd2
inc esi
jmp 0x10022cd3
inc ebx
mov eax, dword [esp + 0x54]
dec eax
cmp edi, eax
jge 0x10022ce3
push 0x10008190
jmp 0x10022ce8
push 0x10008348
call fcn.1005803b
pop ecx
mov ecx, dword [esp + 0x54]
inc edi
cmp edi, ecx
jl 0x10022c90
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
xor ebx, ebx
mov dword [esp + 0x18], esi
inc edx
mov dword [esp + 0x2c], edx
cmp edx, eax
jl 0x10022c86
mov ecx, dword [esp + 0x14]
push 2
pop edi
mov eax, ecx
lea ecx, [esp + 0x1c8]
cdq
sub eax, edx
sar eax, 1
push 0x1000834c
mov dword [esp + 0x18], eax
call fcn.10019b3d
mov dword [esp + 0x1ec], edi
lea eax, [esp + 0x1c8]
mov ecx, dword [esp + 0x54]
imul ecx, dword [esp + 0x5c]
push eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
push ecx
lea ecx, [esp + 0x84]
call fcn.10026e8b
push ebx
push 1
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x1f4], 4
call fcn.1001acce
mov edi, dword [esp + 0x7c]
test esi, esi
jle 0x10022dc0
mov ebx, edi
mov edi, esi
push 0x18
pop esi
push 0x10008350
call fcn.10057fb0
pop ecx
push eax
push 0x10008350
mov ecx, ebx
call fcn.1001ac55
add ebx, esi
dec edi
jne 0x10022d99
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
lea ecx, [eax + esi]
mov dword [esp + 0x20], ecx
cmp esi, ecx
jge 0x10022e18
imul eax, esi, 0x18
push 0x18
add eax, edi
mov dword [esp + 0x30], eax
mov eax, ecx
mov ebx, dword [esp + 0x30]
sub eax, esi
mov dword [esp + 0x14], eax
mov edi, eax
pop esi
push 0x10008354
call fcn.10057fb0
pop ecx
push eax
push 0x10008354
mov ecx, ebx
call fcn.1001ac55
add ebx, esi
dec edi
jne 0x10022de9
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x18], eax
cmp ecx, eax
jge 0x10022e57
imul esi, ecx, 0x18
push 0x18
add esi, edi
sub eax, ecx
mov dword [esp + 0x24], eax
mov ebx, eax
pop edi
push 0x10008358
call fcn.10057fb0
pop ecx
push eax
push 0x10008358
mov ecx, esi
call fcn.1001ac55
add esi, edi
dec ebx
jne 0x10022e36
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
sub eax, edi
push 0x18
pop ecx
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
cmp ecx, eax
jae 0x10022ea7
imul esi, ecx, 0x18
push 0x18
add esi, edi
sub eax, ecx
mov dword [esp + 0x24], eax
mov ebx, eax
pop edi
push 0x1000835c
call fcn.10057fb0
pop ecx
push eax
push 0x1000835c
mov ecx, esi
call fcn.1001ac55
add esi, edi
dec ebx
jne 0x10022e82
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
test eax, eax
je 0x10022eed
mov esi, dword [esp + 0x14]
mov edx, edi
mov ecx, 0x10664638
call fcn.1001eda9
mov edx, 0x10008190
mov ecx, eax
call fcn.1001ebd2
inc ebx
mov eax, ebx
cdq
idiv dword [esp + 0x54]
test edx, edx
jne 0x10022ee2
push 0x10007ff9
call fcn.100591b7
pop ecx
push 0x18
pop eax
add edi, eax
cmp ebx, esi
jb 0x10022eb3
xor ebx, ebx
or ecx, 0xffffffff
mov dword [esp + 0x1ec], ecx
lea ecx, [esp + 0x7c]
call fcn.10026ef6
push 2
pop edi
mov dword [esp + 0x38], 0x82062403
mov dword [esp + 0x78], 0xa5e0b2f6
mov dword [esp + 0x15c], 0xfffffff9
mov dword [esp + 0x16c], 5
mov dword [esp + 0x38], ebx
jmp 0x1002307c
push edi
lea ecx, [esp + 0xf0]
call fcn.1001a500
mov dword [esp + 0x10], ebx
jmp 0x10022f57
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10022f45
mov dword [esp + 0x10], ebx
jmp 0x10022f76
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x120], 0x1ca2961c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10022f63
mov dword [esp + 0x10], ebx
jmp 0x10022f96
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x19c], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10022f83
mov dword [esp + 0x128], ebx
jmp 0x1002303e
mov dword [esp + 0x20], 1
xor ecx, ecx
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x128]
mov eax, dword [esp + 0x38]
cmp eax, 0x9ab5
mov eax, dword [esp + 0xec]
setg cl
xor edx, edx
cmp ecx, dword [eax + esi*4]
setne dl
xor eax, eax
cmp edx, 0xd9796a0b
setne al
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x128]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x20], eax
setl cl
xor edx, edx
mov dword [esp + 0x19c], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp ecx, eax
setg dl
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x128]
mov dword [esp + 0x20], 0x279c90e6
inc dword [esp + 0x128]
cmp dword [esp + 0x128], 1
jle 0x10022fa8
cmp dword [esp + 0xec], 0
je 0x10023078
push dword [esp + 0xec]
call fcn.10058dbb
pop ecx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0xfffffff9
jl 0x10022f32
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x170]
push eax
lea edx, [esp + 0x80]
lea ecx, [esp + 0x40]
call fcn.10022427
pop ecx
pop ecx
push 6
mov dword [esp + 0x1c], 0x5d6c05ba
pop eax
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], eax
jl 0x100232d9
mov esi, 0x891c5534
push 1
lea ecx, [esp + 0xac]
call fcn.1001a500
mov dword [esp + 0x1ec], 5
mov dword [esp + 0x14], ebx
jmp 0x100230fc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0xeede0b40
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x100230e6
mov eax, dword [esp + 0xa8]
mov dword [eax], ebx
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], esi
mov dword [esp + 0x11c], esi
mov dword [esp + 0x20], 0x6ef3b063
mov dword [esp + 0x20], 0x1727
cmp dword [esp + 0x20], 0x10d6
jge 0x100231ab
mov dword [esp + 0x198], 0xf
mov dword [esp + 0x194], ebx
mov byte [esp + 0x184], bl
push 6
pop eax
mov byte [esp + 0x1ec], al
jmp 0x1002317f
lea edx, [esp + 0x184]
mov ecx, 0x10664638
call fcn.1001eda9
push eax
call fcn.1001eba0
pop ecx
lea edx, [esp + 0x184]
mov ecx, 0x106646f0
call fcn.1001eb79
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x10023167
push ebx
push 1
lea ecx, [esp + 0x18c]
call fcn.1001acce
mov dword [esp + 0x20], 0xfffffff7
mov dword [esp + 0x118], 0x10
cmp dword [esp + 0x118], 0xffffffed
jl 0x10023290
or esi, 0xffffffff
mov dword [esp + 0x14], 7
xor ecx, ecx
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xa8]
cmp dword [eax], 0xfffffff8
setne cl
cmp ecx, 0xd1d25bb0
sbb eax, eax
inc eax
cmp eax, 0xfffffff9
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
je 0x1002320e
cmp dword [esp + 0x14], ebx
je 0x1002320e
xor ecx, ecx
inc ecx
jmp 0x10023210
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff6
mov ecx, 0x91c84132
setle al
add eax, 0xffff
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 1
setle cl
cmp esi, ecx
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x118]
test eax, eax
mov eax, dword [esp + 0x18]
setns cl
xor edx, edx
add ecx, 0xfffffff8
cmp ecx, eax
mov eax, 0x967268f5
setne dl
imul edx, dword [esp + 0x14]
cmp eax, edx
mov eax, dword [esp + 0xa8]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, dword [eax]
setge dl
mov dword [esp + 0x20], edx
dec dword [esp + 0x118]
cmp dword [esp + 0x118], 0xffffffed
jge 0x100231cf
mov esi, 0x891c5534
mov eax, dword [esp + 0xa8]
inc dword [eax]
cmp dword [eax], 5
jl 0x1002310c
or ecx, 0xffffffff
push eax
mov dword [esp + 0x1f0], ecx
call fcn.10058dbb
pop ecx
push 6
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
inc dword [esp + 0x1c]
pop eax
cmp dword [esp + 0x18], eax
jge 0x100230c7
mov dword [esp + 0x20], 0x1c1c
cmp dword [esp + 0x20], 0xbf8
jge 0x1002332b
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x14c]
push eax
push 0x1000812c
call fcn.1005803b
mov edx, dword [esp + 0x154]
add esp, 0xc
mov ecx, edi
lea eax, [edx + 1]
cmp dword [esp + 0x140], eax
cmovle ecx, edx
push ecx
push 0x100080b4
call fcn.1005889b
pop ecx
pop ecx
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0x10
jb 0x10023339
mov esi, dword [eax]
jmp 0x1002333b
mov esi, eax
cmp dword [eax + 0x14], 0x10
jb 0x10023345
mov ecx, dword [eax]
jmp 0x10023347
mov ecx, eax
mov eax, dword [eax + 0x10]
add eax, ecx
cmp esi, eax
je 0x10023979
mov al, byte [esi]
cmp al, 0x30
jl 0x1002351f
cmp al, 0x39
jg 0x1002351f
mov dword [esp + 0x3c], 0x82062403
mov dword [esp + 0x74], 0xa5e0b2f6
push 0xfffffffffffffff9
pop eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x160], 5
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x3c], eax
jge 0x100234e5
push edi
lea ecx, [esp + 0xd8]
call fcn.1001a500
lea edx, [esp + 0xd4]
lea ecx, [esp + 0x40]
call fcn.1002255b
mov dword [esp + 0x40], ebx
jmp 0x100233cf
mov eax, dword [esp + 0x40]
mov dword [esp + eax*4 + 0xf8], 0x1ca2961c
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 4
jl 0x100233bc
mov dword [esp + 0x40], ebx
jmp 0x100233ef
mov eax, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x1a4], 0xfffffffd
inc dword [esp + 0x40]
cmp dword [esp + 0x40], edi
jl 0x100233dc
mov dword [esp + 0x100], ebx
cmp dword [esp + 0x100], 1
jg 0x100234aa
mov dword [esp + 0x20], 1
xor ecx, ecx
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x100]
mov eax, dword [esp + 0x3c]
cmp eax, 0x9ab5
mov edx, dword [esp + 0xd4]
setg cl
xor eax, eax
cmp ecx, dword [edx + edi*4]
setne al
xor edx, edx
cmp eax, 0xd9796a0b
mov eax, dword [esp + 0x100]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [esp + 0x1a4], ecx
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
setg dl
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x20], 0x279c90e6
inc dword [esp + 0x100]
cmp dword [esp + 0x100], 1
jle 0x1002340a
push 2
pop edi
cmp dword [esp + 0xd4], 0
je 0x100234d6
push dword [esp + 0xd4]
call fcn.10058dbb
pop ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
dec dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0xfffffff9
jl 0x10023399
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x164]
push eax
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x44]
call fcn.10022577
mov edx, dword [esp + 0x74]
movsx eax, byte [esi]
pop ecx
pop ecx
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
mov eax, dword [esp + 0x30]
jmp 0x1002333b
mov dword [esp + 0x10], 0xc8fc558b
mov dword [esp + 0x30], 0xfffffffc
mov dword [esp + 0x30], 0xe481db3a
mov eax, dword [esp + 0x10]
dec eax
neg eax
sbb eax, eax
neg eax
add eax, 0x725d
neg eax
sbb eax, eax
inc eax
cmp eax, 0xfffc
jb 0x1002355e
cmp dword [esp + 0x10], ebx
je 0x1002355e
xor eax, eax
inc eax
jmp 0x10023560
mov eax, ebx
add eax, 8
xor ecx, ecx
cmp eax, 0x4d2b5f79
setg cl
cmp ecx, dword [esp + 0x10]
jle 0x10023577
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setle dl
cmp edx, 0x16e2
jg 0x10023640
push 1
lea ecx, [esp + 0x134]
call fcn.1001a500
mov dword [esp + 0x30], 0x9c2b2e5f
lea edx, [esp + 0x130]
mov dword [esp + 0x20], ebx
lea ecx, [esp + 0x58]
call fcn.100225c3
mov dword [esp + 0x58], ebx
jmp 0x100235e5
mov eax, dword [esp + 0x58]
mov dword [esp + eax*4 + 0x1bc], 0xfffffff7
inc dword [esp + 0x58]
cmp dword [esp + 0x58], 3
jl 0x100235d2
mov eax, dword [esp + 0x10]
or esi, 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x130], 0
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x20], esi
je 0x100236ad
push dword [esp + 0x130]
call fcn.10058dbb
pop ecx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x138], ebx
jmp 0x100236ad
mov dword [esp + 0x14], ebx
jmp 0x10023656
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x64], 0xa87e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10023646
mov dword [esp + 0x10], ebx
jmp 0x10023687
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x64]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], ecx
mov byte [esp + 0x4f], bl
cmp byte [esp + 0x4f], 0
je 0x10023683
call fcn.100225df
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x10023663
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 1
jge 0x100236aa
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 0x59a7
inc dword [esp + 0x10]
jmp 0x10023691
or esi, 0xffffffff
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x1c
jg 0x10023775
push 6
pop esi
mov dword [esp + 0x30], 0xf18b0119
mov dword [esp + 0x14], ebx
jmp 0x100236e0
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x174], 0x2a53ebf
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x100236cd
cmp dword [esp + 0x10], ebx
jne 0x10023743
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp ecx, eax
setl dl
xor eax, eax
cmp eax, edx
sbb eax, eax
neg eax
cmp dword [esp + 0x174], eax
jge 0x10023717
cmp dword [esp + 0x10], ebx
jne 0x10023717
mov eax, ebx
jmp 0x1002371a
xor eax, eax
inc eax
cmp esi, eax
sbb eax, eax
xor ecx, ecx
neg eax
test eax, eax
setle cl
add ecx, dword [esp + 0x174]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x180]
cmp dword [esp + 0x30], eax
je 0x10023743
mov ecx, ebx
jmp 0x10023746
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x178], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1c
jle 0x100236bf
or esi, 0xffffffff
push 0x6de6
lea eax, [esp + 0x70]
push eax
push 0x549f
push ebx
push 0xafb
call fcn.10025e44
add esp, 0x14
mov dword [esp + 0x94], esi
mov dword [esp + 0x168], 0xa33a
lea ecx, [esp + 0xe0]
mov dword [esp + 0x170], 0xf0442e11
push 1
call fcn.1001a500
mov dword [esp + 0x14], ebx
jmp 0x100237d9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe0]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x100237c3
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x16c]
push eax
lea edx, [esp + 0x178]
lea ecx, [esp + 0x9c]
call fcn.100225e8
cmp dword [esp + 0xe8], 0
pop ecx
pop ecx
je 0x10023831
push dword [esp + 0xe0]
call fcn.10058dbb
pop ecx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
jmp 0x1002384e
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x108], 0xbca6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1002383b
xor ecx, ecx
mov dword [esp + 0x18], ebx
inc ecx
jmp 0x1002396a
mov dword [esp + 0x34], 0xfffffff7
mov dword [esp + 0x34], ebx
jmp 0x1002395c
mov dword [esp + 0x10], 0x9ae77ab3
mov dword [esp + 0x14], 0x9a13
mov eax, dword [esp + 0x34]
cmp dword [esp + eax*4 + 0x108], ebx
jne 0x10023966
mov dword [esp + 0x10], ebx
jmp 0x1002394e
mov dword [esp + 0x2c], 0xdfe4d9ed
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], ebx
jl 0x1002393a
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x100238bb
mov edx, ecx
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + eax*4 + 0x108], 0xfffffffd
mov eax, dword [esp + 0x18]
cmp edx, eax
setle cl
xor edx, edx
add ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0x2c]
setge dl
sub eax, 0xa
imul edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x34]
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x2c]
sub ecx, 3
mov dword [esp + 0x14], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x14], ebx
jl 0x10023930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x108]
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x108], ecx
dec dword [esp + 0x14]
jns 0x10023911
xor ecx, ecx
inc ecx
dec dword [esp + 0x2c]
jns 0x100238b1
mov byte [esp + 0x4e], bl
lea ecx, [esp + 0x4e]
call fcn.100226bd
inc dword [esp + 0x10]
xor ecx, ecx
inc ecx
cmp dword [esp + 0x10], ecx
jle 0x1002389b
inc dword [esp + 0x34]
cmp dword [esp + 0x34], ecx
jle 0x10023871
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jle 0x10023860
jmp 0x1002270a
mov al, 1
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret