Function at 0x100336e4
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006dc9c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x610
push ebx
mov ebx, ecx
mov dword [esp + 0x64], edx
push esi
push edi
mov dword [esp + 0x14], ebx
cmp dword [ebx + 0x10], 0
jne 0x1003371f
xor al, al
jmp 0x100345c8
push 0x7bc1
lea eax, [esp + 0x70]
push 0
push eax
call fcn.10034c8d
mov dword [esp + 0x2c], 0xffff
add esp, 0xc
mov dword [esp + 0x10], 0
jmp 0x10033758
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x104], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10033745
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x1f], 0
je 0x10033770
call fcn.10033595
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0x14], 0x10
mov dword [esp + 0x104], eax
jb 0x10033785
mov ecx, dword [ebx]
jmp 0x10033787
mov ecx, ebx
push 4
pop edi
cmp dword [ebx + 0x14], 0x10
mov dword [esp + 0x58], ecx
jb 0x10033798
mov edx, dword [ebx]
jmp 0x1003379a
mov edx, ebx
mov eax, dword [ebx + 0x10]
add eax, edx
cmp ecx, eax
je 0x100345c6
xor eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], 0x97ec53a2
mov dword [esp + 0x44], 0x81b2706
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov dword [esp + 0x28], 0xfffffff1
cmp dword [esp + 0x28], 0xfffffffd
jge 0x10033b70
xor ebx, ebx
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x5c]
push 3
call fcn.1002b6f7
mov dword [esp + 0x624], ebx
mov dword [esp + 0xc], 0xbf748bbe
mov dword [esp + 0x10], ebx
jmp 0x1003381a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x8974b66
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10033807
cmp dword [esp + 0x24], ebx
je 0x100338f8
mov dword [esp + 0x20], 0x1a96
cmp dword [esp + 0x20], 0xf33
jge 0x100338d0
lea eax, [esp + 0x50]
mov dword [esp + 0x50], ebx
push eax
push 0x10007740
call fcn.10055feb
mov eax, dword [esp + 0x58]
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1004ff56
mov ecx, dword [esp + 0x5c]
xor edi, edi
inc edi
add esp, 0xc
mov ebx, eax
cmp ecx, edi
jl 0x10033896
lea esi, [ebx + 4]
push esi
push 0x10007740
call fcn.10055feb
pop ecx
pop ecx
mov ecx, dword [esp + 0x50]
inc edi
add esi, 4
cmp edi, ecx
jle 0x1003387d
xor edi, edi
xor eax, eax
inc edi
cmp ecx, edi
jl 0x100338ba
mov edx, dword [ebx + edi*4]
xor esi, esi
inc esi
jmp 0x100338ab
mov edx, dword [ebx + edx*4]
inc esi
cmp edx, 0xffffffff
jne 0x100338a7
cmp esi, eax
cmovg eax, esi
inc edi
cmp edi, ecx
jle 0x1003389f
push eax
push 0x10007768
call fcn.10056438
push ebx
call fcn.10056580
add esp, 0xc
xor ebx, ebx
lea edx, [esp + 0x28]
mov dword [esp + 0xe8], 0xa97963ba
lea ecx, [esp + 0x5c]
call fcn.100335a0
mov edx, ecx
lea ecx, [esp + 0xe8]
call fcn.100335af
jmp 0x10033905
lea edx, [esp + 0x24]
lea ecx, [esp + 0x5c]
call fcn.100335bc
cmp dword [esp + 0x24], ebx
jne 0x1003393d
cmp dword [esp + 0x28], ebx
jne 0x10033947
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x28], ebx
je 0x10033a83
mov dword [esp + 0xe4], 0x49a5c1b0
mov dword [esp + 0x24], ebx
jmp 0x10033a63
lea edx, [esp + 0x24]
lea ecx, [esp + 0x5c]
call fcn.100335cb
mov dword [esp + 0x20], 0x21bd
cmp dword [esp + 0x20], 0xfaa
jge 0x10033a5f
lea eax, [esp + 0x90]
push eax
push 0x10007768
call fcn.10055feb
mov edi, dword [esp + 0x98]
xor esi, esi
and dword [esp + 0x18], esi
pop ecx
pop ecx
lea eax, [edi + edi]
mov dword [esp + 0xc], esi
test eax, eax
jle 0x100339f4
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x100]
push eax
push 0x100079a8
call fcn.10055feb
add esi, dword [esp + 0x98]
add esp, 0xc
cmp dword [esp + 0x8c], 0
jle 0x100339d9
inc ebx
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
lea eax, [edi + edi]
cmp ecx, eax
jl 0x100339aa
mov dword [esp + 0xc], esi
movsd xmm0, qword [0x10007ee0]
mov ecx, ebx
sub ecx, edi
push 0
pop eax
cmovs ecx, eax
cmp ecx, ebx
jg 0x10033a41
imul edx, ecx, 0xa4
sub esi, edx
sub edx, dword [esp + 0xc]
cmp ecx, edi
jg 0x10033a41
test esi, esi
mov eax, esi
cmovs eax, edx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
jbe 0x10033a33
movapd xmm0, xmm1
mov eax, 0xa4
inc ecx
sub esi, eax
add edx, eax
cmp ecx, ebx
jle 0x10033a16
divsd xmm0, qword [0x10007ed8]
push ecx
push ecx
movsd qword [esp], xmm0
push 0x100079b0
call fcn.10056438
add esp, 0xc
xor ebx, ebx
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jl 0x1003395b
lea edx, [esp + 0xe4]
lea ecx, [esp + 0x48]
call fcn.100335d7
jmp 0x10033b30
push 2
lea ecx, [esp + 0x98]
call fcn.1002b6f7
mov dword [esp + 0xc0], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x10033ab8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov dword [eax + ecx*4], 0xa932da3b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10033aa2
lea eax, [esp + 0x5c]
push eax
lea edx, [esp + 0x98]
lea ecx, [esp + 0x4c]
call fcn.100335dc
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x6c]
push eax
mov eax, ecx
lea edx, [esp + 0xd0]
push eax
lea ecx, [esp + 0xd8]
call fcn.100335ef
add esp, 0x18
cmp dword [esp + 0x94], 0
je 0x10033b30
push dword [esp + 0x94]
call fcn.100565a7
pop ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
or dword [esp + 0x624], 0xffffffff
cmp dword [esp + 0x5c], 0
je 0x10033b55
push dword [esp + 0x5c]
call fcn.100565a7
pop ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0xfffffffd
push 1
pop eax
push 4
pop edi
jl 0x100337e3
mov ebx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x44], 0xffffffe6
jmp 0x10033b98
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov byte [esp + 0x1f], cl
cmp byte [esp + 0x1f], 0
je 0x10033b94
call fcn.10033635
xor ecx, ecx
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 0x2b
jl 0x10033b7a
mov eax, dword [esp + 0x58]
mov al, byte [eax]
cmp al, 0x30
jl 0x10033d1e
cmp al, 0x39
jg 0x10033d1e
mov dword [esp + 0x20], 0x1ad7
cmp dword [esp + 0x20], 0xc50
jge 0x10033cd5
lea eax, [esp + 0x4c]
push eax
push 0x10007744
call fcn.10055feb
jmp 0x10033cc2
dec eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x38]
push eax
push 0x100077c8
call fcn.10055feb
mov edx, dword [esp + 0x50]
add esp, 0x10
mov esi, dword [esp + 0x30]
cmp edx, esi
jle 0x10033c1a
mov eax, esi
mov esi, edx
mov edx, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x38]
cmp ecx, esi
jle 0x10033c30
mov eax, esi
mov esi, ecx
mov ecx, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], ecx
cmp ecx, edx
jle 0x10033c42
mov eax, ecx
mov ecx, edx
mov edx, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
xor eax, eax
test esi, esi
je 0x10033c4e
dec esi
inc eax
mov dword [esp + 0x30], esi
test edx, edx
je 0x10033c58
dec edx
inc eax
mov dword [esp + 0x40], edx
test ecx, ecx
je 0x10033c62
dec ecx
inc eax
mov dword [esp + 0x38], ecx
test esi, esi
je 0x10033c88
test edx, edx
je 0x10033c75
inc eax
dec esi
dec edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], edx
test esi, esi
je 0x10033c88
test ecx, ecx
je 0x10033c88
inc eax
dec esi
dec ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], ecx
test edx, edx
je 0x10033c9b
test ecx, ecx
je 0x10033c9b
inc eax
dec edx
dec ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], ecx
test esi, esi
je 0x10033cb7
test edx, edx
je 0x10033cb7
test ecx, ecx
je 0x10033cb7
inc eax
dec esi
dec edx
mov dword [esp + 0x30], esi
dec ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], ecx
push eax
push 0x10007778
call fcn.10056438
mov eax, dword [esp + 0x54]
pop ecx
pop ecx
test eax, eax
jne 0x10033bdf
dec eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], 0x9f9b3198
mov dword [esp + 0xc], 0
jmp 0x10033d00
cmp dword [esp + 0xc], 0
jne 0x10033d07
mov byte [esp + 0x3f], 0
lea ecx, [esp + 0x3f]
call fcn.10033643
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe6
jge 0x10033ce7
lea edx, [esp + 0x58]
lea ecx, [esp + 0x6c]
call fcn.10033653
mov ecx, dword [esp + 0x58]
inc ecx
jmp 0x1003378a
mov dword [esp + 0x20], 0x2424
cmp dword [esp + 0x20], 0x7bb
jge 0x10033fa4
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x624], 1
push 2
mov byte [esp + 0x12d], cl
pop ecx
mov word [esp + 0x1a8], 0x100
mov dword [esp + 0x68], ecx
mov byte [esp + ecx + 0x1a8], 1
mov byte [esp + ecx + 0x128], 1
push 2
pop esi
cmp ecx, edi
jl 0x10033db5
mov eax, ecx
cdq
idiv esi
test edx, edx
jne 0x10033da8
mov al, byte [esp + eax + 0x128]
xor al, byte [esp + esi + 0x128]
mov byte [esp + ecx + 0x128], al
mov eax, ecx
cdq
idiv edi
test edx, edx
jne 0x10033da8
mov byte [esp + ecx + 0x1a8], dl
inc esi
mov edi, esi
imul edi, esi
cmp edi, ecx
jle 0x10033d7a
push 4
pop edi
cmp byte [esp + ecx + 0x1a8], 0
je 0x10033dd1
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x74]
call fcn.10037727
mov ecx, dword [esp + 0x68]
inc ecx
mov dword [esp + 0x68], ecx
cmp ecx, 0x7c
jle 0x10033d63
mov ebx, dword [esp + 0x74]
lea eax, [esp + 0x54]
sub ebx, dword [esp + 0x70]
push eax
sar ebx, 2
push 0x10007740
mov dword [esp + 0x28], ebx
call fcn.10055feb
pop ecx
pop ecx
jmp 0x10033f74
push 0x1f4
lea eax, [esp + 0x22c]
push 0
push eax
call fcn.100564f0
xor esi, esi
add esp, 0xc
cmp dword [esp + 0x54], esi
jle 0x10033e48
lea eax, [esp + 0xc8]
push eax
push 0x10007740
call fcn.10055feb
mov eax, dword [esp + 0xd0]
pop ecx
pop ecx
inc dword [esp + eax*4 + 0x228]
inc esi
cmp esi, dword [esp + 0x54]
jl 0x10033e1f
push 0x1f4
lea eax, [esp + 0x424]
push 0
push eax
call fcn.100564f0
add esp, 0xc
lea edx, [esp + 0x428]
push 2
pop eax
mov ecx, eax
cmp eax, 0x7c
jg 0x10033e82
mov esi, dword [edx]
add esi, dword [esp + ecx*4 + 0x228]
add ecx, eax
cmp ecx, 0x7c
jle 0x10033e72
mov dword [edx], esi
inc eax
add edx, edi
cmp eax, 0x7c
jle 0x10033e69
mov edi, dword [esp + 0x54]
lea ecx, [edi - 2]
lea eax, [edi - 3]
imul ecx
mov esi, eax
mov ecx, edx
lea eax, [edi - 1]
cdq
push edx
push eax
push ecx
push esi
call fcn.1005a000
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.1005a000
push 0
push 0x18
push edx
push eax
call fcn.1006cb10
mov ecx, edx
mov dword [esp + 0x10], eax
xor edx, edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
test ebx, ebx
jle 0x10033f53
mov eax, dword [esp + 0x70]
mov ebx, dword [eax + edx*4]
mov edi, dword [esp + ebx*4 + 0x420]
lea ecx, [edi - 2]
lea eax, [edi - 3]
imul ecx
mov esi, eax
mov ecx, edx
lea eax, [edi - 1]
cdq
push edx
push eax
push ecx
push esi
call fcn.1005a000
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.1005a000
push 0
push 0x18
push edx
push eax
call fcn.1006cb10
cmp byte [esp + ebx + 0x128], 0
mov ecx, eax
mov eax, dword [esp + 0x10]
je 0x10033f32
sub eax, ecx
mov ecx, dword [esp + 0xc]
sbb ecx, edx
jmp 0x10033f3a
add eax, ecx
mov ecx, dword [esp + 0xc]
adc ecx, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
inc edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp edx, ebx
jl 0x10033ed6
push ecx
push eax
push 0x100077a8
call fcn.10056438
lea eax, [esp + 0x60]
push eax
push 0x10007740
call fcn.10055feb
add esp, 0x14
push 4
pop edi
cmp eax, 1
je 0x10033e00
or dword [esp + 0x624], 0xffffffff
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10033fa4
push eax
call fcn.100565a7
xor ebx, ebx
pop ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
jmp 0x10033fa6
xor ebx, ebx
push 4
pop edi
mov dword [esp + 0x18], 0xd453
lea ecx, [esp + 0xa0]
push edi
call fcn.1002b6f7
push 2
pop esi
mov dword [esp + 0x624], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], ebx
jmp 0x10033fe4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10033fd2
mov dword [esp + 0x14], ebx
jmp 0x10034003
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x100], 0x5e2138b3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10033ff0
mov byte [esp + 0x37], bl
lea ecx, [esp + 0x37]
call fcn.10033667
cmp dword [esp + 0x18], ebx
je 0x10034043
mov dword [esp + 0x20], edi
push 3
mov dword [esp + 0x1c], ebx
pop edi
jmp 0x10034038
cmp dword [esp + 0x20], ebx
jne 0x10034153
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x1003402a
jmp 0x10034153
mov dword [esp + 0x10], 0xdbc1c234
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x2c], 0x504ed09e
mov dword [esp + 0x2c], 0x6c56d20a
mov dword [esp + 0x2c], 0xcde30eca
mov dword [esp + 0x2c], 0xfffffffb
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 0xfffffffc
mov dword [esp + 0x2c], 0x8a57461d
push esi
call fcn.1002b6f7
mov dword [esp + 0x14], ebx
jmp 0x100340b4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xac]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100340a2
mov dword [esp + 0x14], ebx
jmp 0x100340d3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf4], 0xb407cb0b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100340c0
push 3
mov dword [esp + 0x1c], ebx
pop edi
jmp 0x1003411a
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], 0x9a2a67f6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x100340e2
inc dword [esp + 0xf8]
cmp dword [esp + 0xac], 0
je 0x10034153
push dword [esp + 0xac]
call fcn.100565a7
pop ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
or dword [esp + 0x624], 0xffffffff
cmp dword [esp + 0xa0], 0
je 0x10034187
push dword [esp + 0xa0]
call fcn.100565a7
pop ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
lea eax, [esp + 0x6c]
push eax
push 0x6974
push ebx
call fcn.10037328
add esp, 0xc
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0xfd52
lea ecx, [esp + 0x7c]
mov dword [esp + 0x10], 0xa198
push esi
call fcn.1002b6f7
mov dword [esp + 0xc], ebx
jmp 0x100341d1
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [eax + ecx*4], 0x3d925d3c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x100341be
mov dword [esp + 0xc], ebx
jmp 0x100341f0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xd0], 0x99d621dd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x100341dd
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push 0xfffffffffffffffa
pop edi
cmp dword [esp + 0x10], ebx
je 0x1003424d
mov dword [esp + 0x10], 0xffffffff
inc dword [esp + 0x10]
jmp 0x100342e9
mov dword [esp + 0xc], 0x177fd8b2
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], ebx
je 0x1003426a
cmp dword [esp + 0x10], ebx
je 0x1003426a
xor eax, eax
inc eax
jmp 0x1003426c
mov eax, ebx
xor ecx, ecx
cmp eax, 0x6953
setge cl
xor eax, eax
add ecx, 0x7718da91
cmp ecx, 0x7656
setl al
xor edx, edx
imul ecx, eax, 0xffff
mov eax, dword [esp + 0x18]
cmp eax, ecx
setne dl
cmp edx, dword [esp + 0x14]
je 0x100342a9
cmp dword [esp + 0xc], ebx
je 0x100342a9
xor eax, eax
inc eax
jmp 0x100342ab
mov eax, ebx
cmp eax, 0xfffa
mov eax, dword [esp + 0x14]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setg cl
xor edx, edx
imul ecx, ecx, 0xe874
cmp ecx, eax
mov eax, dword [esp + 0xc]
setg dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 0x31
jg 0x100343b2
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x10], 0x5c8f
mov dword [esp + 0xc], 0xfffffffc
mov dword [esp + 0x18], 0xffffffec
jmp 0x1003432a
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10034326
call sub.KERNEL32.dll_GetEnvironmentStringsW
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe8
jle 0x10034316
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
je 0x10034369
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x6f0e
mov eax, dword [esp + 0x7c]
setge cl
xor edx, edx
cmp ecx, dword [eax]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
setle dl
add ecx, edx
imul ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, 0xffff32bc
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
dec edx
cmp edx, eax
setle cl
cmp ecx, 9
sbb eax, eax
neg eax
imul eax, dword [esp + 0xd0]
mov dword [esi + 4], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x31
jle 0x100342fc
push 2
pop esi
cmp dword [esp + 0x7c], 0
je 0x100343d5
push dword [esp + 0x7c]
call fcn.100565a7
pop ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x20], 0x2cb5
lea ecx, [esp + 0xd8]
mov dword [esp + 0x2c], 0xd085c9e5
mov dword [esp + 0x88], ebx
mov dword [esp + 0x10], 0xfffffff6
mov dword [esp + 0xc4], 0x50315362
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x14], 0x2a26f3f1
push 1
call fcn.1002b6f7
mov dword [esp + 0xd4], 0x1637c1d6
mov dword [esp + 0x2c], 0x127b
mov dword [esp + 0xc], 0xe0cd5c0f
mov dword [esp + 0x18], ebx
jmp 0x1003444f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1003443d
mov dword [esp + 0x18], ebx
jmp 0x1003446f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x10c], 0x12a3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1003445c
mov dword [esp + 0x18], ebx
jmp 0x1003448f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x118], 0x693ce85d
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1003447c
mov eax, dword [esp + 0xf0]
xor edx, edx
mov eax, dword [esp + 0xd4]
dec dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x10c]
imul esi, eax, 0x4174
mov eax, dword [esp + 0xd8]
mov dword [eax], esi
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
imul eax, edx
cmp eax, 0xfffffffd
setne cl
xor eax, eax
test esi, esi
sete al
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, 0xffff
mov eax, dword [esp + 0x118]
setne cl
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x20]
cmp eax, ecx
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x88], ecx
mov dword [esp + 0xc], 0xffffffe2
jmp 0x1003459f
lea eax, [esp + 0xd8]
mov dword [esp + 0xec], 0x140c5034
push eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xd0], 0x63cd51dc
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x90]
call fcn.1003367e
pop ecx
pop ecx
mov dword [esp + 0x10], ebx
jmp 0x10034595
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10034591
call fcn.100336d8
dec dword [esp + 0x10]
cmp dword [esp + 0x10], edi
je 0x10034581
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x1f
je 0x10034540
cmp dword [esp + 0xd8], 0
je 0x10033718
push dword [esp + 0xd8]
call fcn.100565a7
pop ecx
jmp 0x10033718
mov al, 1
mov ecx, dword [esp + 0x61c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret