Function at 0x101dcb0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x690
mov eax, dword [0x1057620]
xor eax, esp
mov dword [esp + 0x688], eax
mov eax, dword [0x10585cc]
mov edx, 0x21
push ebx
mov bl, byte [0x10585c0]
add eax, 0xffffffbc
push esi
push edi
movzx edi, bl
sub edi, ecx
mov dword [esp + 0x44], ecx
add edi, eax
mov eax, dword [0x10585c4]
lea ebx, [ebx]
cmp bl, byte [0x105866a]
je 0x101dd13
sub byte [edx + 0x1058660], cl
mov bl, al
sub bl, cl
sub bl, 2
movzx eax, bl
add eax, 6
mov byte [0x10585c0], bl
add eax, ecx
sub edx, 2
cmp edx, 3
jg 0x101dcf0
mov esi, dword [0x10585d0]
lea edx, [esi + 6]
add edx, edi
xor eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
jb 0x101dd78
ja 0x101dd38
cmp edx, esi
jb 0x101dd78
push dword [0x105861c]
mov edx, dword [0x10585d4]
push dword [0x1058618]
mov dword [esp + 0x28], edx
push 0
push edx
call fcn.0100c6c0
mov dword [0x1058618], eax
mov eax, dword [esp + 0x20]
sub eax, esi
mov dword [0x105861c], edx
sub eax, 0x3ac3
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], eax
movzx eax, bl
mov ebx, dword [esp + 0x20]
mov dword [0x10ef144], 0x105a240
lea ecx, [ebx + 6]
add ecx, eax
call fcn.0101ef70
mov edi, dword [0x10585d0]
xor eax, eax
mov ecx, edi
mov esi, 0x10585f8
cmp ecx, dword [0x10585e8]
jne 0x101ddb2
cmp eax, dword [0x10585ec]
je 0x101dded
push dword [esi + 4]
push dword [esi]
push dword [esp + 0x1c]
push ebx
call fcn.0100c6c0
mov ebx, eax
mov dword [esp + 0x14], edx
mov ecx, ebx
xor eax, eax
sub ecx, edi
add ecx, dword [0x10585d4]
mov edi, ecx
mov dword [0x10585d0], edi
cmp ecx, dword [0x10585e0]
jne 0x101ddf1
cmp eax, dword [0x10585e4]
je 0x101ddfc
jmp 0x101ddf1
mov edx, dword [esp + 0x14]
add esi, 8
cmp esi, 0x1058710
jl 0x101dda2
xor eax, eax
add edi, 0xffffffa2
adc eax, 0xffffffff
add ebx, edi
mov dword [esp + 0x20], ebx
mov ebx, 0x17
adc edx, eax
movzx eax, byte [0x10585c0]
add eax, eax
mov dword [esp + 0x14], edx
sub ebx, eax
mov ecx, ebx
mov dword [0x10585cc], ebx
call fcn.0101ef70
mov edx, dword [esp + 0x20]
sub bl, 0x5e
mov dword [0x10585c4], eax
add bl, dl
mov eax, 0xfffffffe
mov byte [0x10585c0], bl
mov ecx, eax
mov dword [esp + 0x30], eax
sub ecx, dword [0x10585d0]
mov eax, 0xffffffff
mov dword [esp + 0x2c], eax
sbb eax, 0
add edx, ecx
mov ecx, dword [esp + 0x14]
adc ecx, eax
mov dword [0x10585d8], edx
push 0x646
lea eax, [esp + 0x4c]
mov dword [0x10585dc], ecx
push eax
push str.Ship_T
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov edx, dword [0x10585c4]
xor eax, eax
cmp eax, dword [0x10585dc]
jb 0x101dec1
mov ecx, dword [0x10585d8]
ja 0x101dea7
cmp dword [0x10585d4], ecx
jb 0x101dec1
mov al, byte [0x1058667]
imul dl
mov byte [0x1058667], al
mov eax, edx
sub eax, ecx
sub eax, 0x3ac3
mov dword [0x10585d4], eax
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov ecx, dword [0x10585f4]
adc ecx, dword [0x1058634]
cmp eax, 0x1b4
jne 0x101defe
test ecx, ecx
jne 0x101defe
mov eax, dword [0x10585d0]
add eax, 0xffffffa2
add eax, dword [0x10585cc]
sub edx, eax
sub edx, 0x10
mov dword [0x10585cc], edx
jmp 0x101df15
mov eax, dword [0x10585e0]
sub eax, dword [0x10585d0]
add eax, edx
mov dword [0x10585cc], 0xffffc53d
sub esp, 0xc
mov dword [0x10585d0], eax
call fcn.010021d0
mov ebx, dword [0x10585d4]
add esp, 0xc
mov edi, dword [0x10585dc]
mov eax, 0x10586e8
mov ecx, dword [0x10585d8]
mov esi, dword [0x10585d0]
xor edx, edx
cmp esi, dword [0x1058630]
jne 0x101df54
cmp edx, dword [0x1058634]
je 0x101df6d
mov esi, ecx
lea ecx, [ebx + 6]
sub esi, ebx
sub esi, 2
sub dword [eax], ebx
mov dword [0x10585d0], esi
sbb dword [eax + 4], edx
add ecx, esi
xor edi, edi
sub eax, 0x10
cmp eax, 0x10585f8
jg 0x101df42
xor eax, eax
mov dword [esp + 0x1c], 0x227c9a0
lea edx, [esi - 0x10]
sub edx, ecx
mov ecx, dword [0x10585c4]
mov dword [esp + 0x14], edx
sbb eax, edi
cmp dword [0x105867c], 0
mov dword [esp + 0x34], eax
ja 0x101dfd0
jb 0x101dfa9
cmp dword [0x1058678], ecx
ja 0x101dfd0
mov eax, ecx
mov dword [0x1058658], esi
sub eax, esi
mov dword [0x105865c], 0
lea esi, [eax + 0xd2e1]
sub ecx, esi
mov dword [0x10585d0], esi
sub ecx, 0x10
jmp 0x101dfd6
mov ecx, dword [0x10585cc]
lea eax, [ecx - 0x5e]
mov dword [esp + 0x38], ecx
add al, dl
mov ecx, esi
mov edx, dword [esp + 0x14]
mov edi, 0x10585f8
mov byte [0x10585c0], al
xor eax, eax
cmp ecx, dword [0x10585e8]
jne 0x101e001
cmp eax, dword [0x10585ec]
je 0x101e03e
mov eax, dword [esp + 0x34]
push eax
push edx
push dword [edi + 4]
push dword [edi]
call fcn.0100c6c0
mov ecx, eax
mov dword [esp + 0x14], eax
sub ecx, esi
mov dword [esp + 0x34], edx
xor eax, eax
lea esi, [ebx + ecx]
mov ecx, esi
mov dword [0x10585d0], esi
cmp ecx, dword [0x10585e0]
jne 0x101e03a
cmp eax, dword [0x10585e4]
je 0x101e049
mov edx, dword [esp + 0x14]
add edi, 8
cmp edi, 0x1058710
jl 0x101dff1
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.0101f440
mov edi, dword [0x10585d0]
xor edx, edx
mov dword [esp + 0x24], eax
mov dword [0x10585c4], eax
movzx eax, byte [0x10585c0]
lea ecx, [edi + 0xd2e1]
mov dword [esp + 0x34], 0x11
sub esi, ecx
mov dword [esp + 0x40], 0x77
mov ecx, dword [esp + 0x14]
add esi, edi
add eax, 6
add ecx, esi
mov dword [esp + 0x14], ecx
add ecx, eax
mov al, bl
mov dword [esp + 0x28], ecx
sub al, byte [esp + 0x14]
sub al, 2
mov byte [esp + 0x13], al
cmp dword [0x105867c], edx
ja 0x101e0d1
jb 0x101e0b7
cmp dword [0x1058678], ebx
ja 0x101e0d1
mov eax, ebx
mov dword [0x1058658], edi
sub eax, edi
mov dword [0x105865c], 0
lea edi, [eax + 0xd2e1]
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov edx, dword [0x10585f4]
adc edx, dword [0x1058634]
mov dword [esp + 0x3c], 0x65
mov dword [esp + 0x38], 0
cmp eax, 0x1b4
jne 0x101e112
test edx, edx
jne 0x101e112
add edi, 0xffffffa2
lea edx, [ecx + edi*2]
mov edi, ebx
sub edi, edx
sub edi, 0x10
jmp 0x101e121
mov edx, dword [0x10585e0]
sub edx, edi
mov edi, 0xffffc53d
add edx, ebx
xor esi, esi
mov dword [0x10585d0], edx
shld esi, edi, 1
mov dword [esp + 0x18], edx
add edi, edi
sub edi, edx
sbb esi, 0
add edi, 0xffffffbc
adc esi, 0xffffffff
cmp dword [vtable.type_info.0], 3
jne 0x101e165
cmp dword [0x1058684], 0
jne 0x101e165
movzx eax, byte [esp + 0x13]
sub eax, edx
sub eax, 2
mov dword [esp + 0x24], eax
mov dword [0x10585c4], eax
jmp 0x101e170
lea eax, [edx - 0x5e]
add al, byte [esp + 0x24]
mov byte [esp + 0x13], al
mov eax, 0x10586e8
cmp edx, dword [0x1058630]
jne 0x101e187
xor ecx, ecx
cmp ecx, dword [0x1058634]
je 0x101e1a1
mov edx, edi
lea edi, [ebx + 6]
sub edx, ebx
sub edx, 2
sub dword [eax], ebx
mov dword [0x10585d0], edx
sbb dword [eax + 4], 0
add edi, edx
xor esi, esi
sub eax, 0x10
cmp eax, 0x10585f8
jg 0x101e175
xor ecx, ecx
mov dword [esp + 0x18], edx
mov eax, edx
add eax, 6
adc ecx, ecx
add edi, eax
movzx eax, byte [esp + 0x13]
adc esi, ecx
mov dword [esp + 0x14], esi
cmp eax, edx
jb 0x101e1fe
push dword [0x105861c]
push dword [0x1058618]
push 0
push dword [esp + 0x30]
call fcn.0100c6c0
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [0x105861c], edx
mov al, cl
mov edx, dword [esp + 0x18]
sub al, dl
mov dword [0x1058618], esi
add al, 0x3d
jmp 0x101e20c
mov ecx, dword [esp + 0x24]
mov esi, dword [0x1058618]
mov al, byte [esp + 0x13]
cmp dword [0x1058620], 0x1ba6
jne 0x101e22d
cmp dword [0x1058624], 0
jne 0x101e22d
mov edx, edi
mov dword [esp + 0x18], edx
mov dword [0x10585d0], edx
movzx eax, al
cmp eax, edx
jb 0x101e252
push dword [0x105861c]
push esi
push 0
push ecx
call fcn.0100c6c0
mov dword [0x105861c], edx
mov edx, dword [esp + 0x18]
mov dword [0x1058618], eax
mov esi, dword [esp + 0x24]
jmp 0x101e260
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [0x105867c], eax
ja 0x101e2a6
jb 0x101e278
cmp dword [0x1058678], edx
ja 0x101e2a6
mov eax, dword [esp + 0x14]
lea ecx, [edx + 0xd2e1]
mov dword [0x105865c], eax
xor eax, eax
sub ecx, edi
mov dword [0x1058658], edi
mov edi, ecx
mov ecx, edx
sbb eax, dword [esp + 0x14]
sub ecx, edi
sub ecx, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
jb 0x101e2fa
mov eax, dword [esp + 0x24]
ja 0x101e2b7
cmp edi, eax
jbe 0x101e300
xor ecx, ecx
test eax, eax
sete cl
test ecx, ecx
je 0x101e304
cmp ecx, ebx
jb 0x101e304
push dword [0x105861c]
push dword [0x1058618]
push dword [esp + 0x28]
push edx
call fcn.0100c6c0
mov dword [0x105861c], edx
mov edi, eax
mov edx, dword [esp + 0x18]
mov ecx, edx
sub ecx, ebx
mov dword [0x1058618], edi
sub ecx, 0x3ac3
jmp 0x101e304
mov ecx, dword [esp + 0x28]
jmp 0x101e308
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov eax, edx
mov byte [esp + 0x13], cl
sub byte [esp + 0x13], al
xor edi, edi
sub byte [esp + 0x13], 2
cmp edi, edi
mov edi, dword [0x1058618]
mov dword [esp + 0x14], eax
ja 0x101e35c
jb 0x101e32d
cmp ecx, eax
jae 0x101e35c
mov al, byte [esp + 0x13]
lea esi, [edx + 0xd2e1]
mov byte [esp + 0x13], al
xor eax, eax
sub esi, dword [esp + 0x14]
mov ecx, esi
mov dword [esp + 0x14], esi
sbb eax, eax
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x13]
sub ecx, eax
sub ecx, 0x3ac3
jmp 0x101e3bc
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov edi, dword [0x10585f4]
mov dword [esp + 0x28], edi
mov edi, dword [0x1058634]
adc dword [esp + 0x28], edi
mov edi, dword [0x1058618]
cmp eax, 0x1b4
jne 0x101e39f
cmp dword [esp + 0x28], 0
jne 0x101e39f
add ecx, 0xffffffa2
add edx, ecx
mov ecx, dword [esp + 0x24]
sub ecx, edx
sub ecx, 0x10
jmp 0x101e3ae
mov eax, dword [0x10585e0]
mov ecx, 0xffffc53d
sub eax, edx
lea edx, [esi + eax]
mov esi, dword [esp + 0x14]
mov dword [0x10585d0], edx
mov dword [esp + 0x18], edx
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x28], ecx
mov dword [0x10585cc], ecx
jb 0x101e4da
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
sub eax, edx
mov edx, dword [esp + 0x14]
sbb ecx, 0
add edx, eax
mov eax, dword [esp + 0x20]
adc eax, ecx
mov dword [0x10585d8], edx
mov dword [0x10585dc], eax
mov eax, dword [esp + 0x28]
sub al, 0x5e
add al, dl
mov byte [0x10585c0], al
call fcn.01002030
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov ecx, dword [0x10585f4]
adc ecx, dword [0x1058634]
cmp eax, 0x1b4
jne 0x101e43a
test ecx, ecx
jne 0x101e43a
mov al, byte [0x10585cc]
mov cl, byte [0x10585c0]
sub al, 0x5e
add cl, al
jmp 0x101e44c
mov cl, byte [0x10585e0]
sub cl, byte [0x10585c0]
add cl, byte [0x10585d8]
mov edx, dword [0x10585d0]
xor eax, eax
mov ebx, dword [0x10585d4]
mov dword [esp + 0x18], edx
lea edi, [edx - 0x27]
neg edi
adc eax, eax
dec dword [esp + 0x1c]
neg eax
mov dword [esp + 0x14], eax
movzx eax, cl
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x20], ecx
sub ecx, ebx
sub ecx, dword [0x10585c4]
add ecx, 0x17
mov esi, ecx
mov dword [esp + 0x28], ecx
sub esi, edx
sub esi, 2
mov dword [esp + 0x24], esi
mov dword [0x10585c4], esi
cmp ecx, eax
jb 0x101e260
push dword [esp + 0x14]
push edi
push dword [0x105861c]
push dword [0x1058618]
call fcn.0100c6c0
mov ecx, dword [esp + 0x20]
add ecx, 0xffffc53d
mov dword [0x105861c], edx
mov edx, dword [esp + 0x18]
mov dword [0x1058618], eax
mov dword [esp + 0x28], ecx
jmp 0x101e260
cmp dword [vtable.type_info.0], 3
jne 0x101e504
cmp dword [0x1058684], 0
jne 0x101e504
movzx eax, byte [esp + 0x13]
mov esi, ecx
sub esi, eax
mov dword [esp + 0x20], 0
sub esi, 2
mov dword [esp + 0x14], esi
mov cl, byte [esp + 0x13]
movzx eax, cl
add eax, 6
add eax, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x28], eax
xor eax, eax
cmp eax, esi
mov eax, dword [esp + 0x14]
jb 0x101e57c
ja 0x101e52a
cmp dword [esp + 0x28], eax
jbe 0x101e57c
sub dword [esp + 0x30], edx
sbb dword [esp + 0x2c], 0
add eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
adc esi, dword [esp + 0x2c]
sub al, cl
sub al, 0x1f
mov byte [esp + 0x13], al
cmp dword [esp + 0x28], ebx
jb 0x101e578
push dword [0x105861c]
push edi
push 0
push edx
call fcn.0100c6c0
mov dword [0x1058618], eax
mov dword [0x105861c], edx
mov edx, dword [esp + 0x18]
mov eax, edx
sub eax, ebx
sub eax, 0x3ac3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
cmp dword [0x105867c], 0
ja 0x101e5b2
jb 0x101e58f
cmp dword [0x1058678], ebx
ja 0x101e5b2
mov eax, ebx
mov dword [0x1058658], edx
sub eax, edx
mov dword [0x105865c], 0
lea edx, [eax + 0xd2e1]
mov eax, ebx
sub eax, edx
sub eax, 0x10
xor esi, esi
lea ecx, [edx - 0x10]
mov dword [esp + 0x30], 0x227c9a0
xor edi, edi
sub ecx, eax
mov al, byte [esp + 0x13]
sbb edi, esi
mov dword [esp + 0x18], ecx
mov esi, ecx
mov dword [esp + 0x14], edi
sub esi, edx
mov dword [0x10585d8], ecx
mov dl, byte [0x1058661]
add esi, 0xd2e1
mov dword [esp + 0x20], esi
mov dword [0x10585d0], esi
mov esi, 3
mov dword [0x10585dc], edi
lea ebx, [ebx]
cmp al, dl
je 0x101e648
movzx eax, byte [esi + 0x1058660]
push edi
cdq
push ecx
push edx
push eax
call fcn.0100c6c0
mov cl, bl
mov dword [esp + 0x18], eax
sub cl, byte [esp + 0x13]
mov edi, edx
mov dword [0x10585d8], eax
add al, cl
mov dword [esp + 0x14], edi
mov dword [0x10585dc], edi
mov byte [esp + 0x13], al
cmp al, byte [0x1058660]
je 0x101e64e
mov ecx, dword [esp + 0x18]
mov dl, byte [0x1058661]
inc esi
cmp esi, 0x26
jl 0x101e600
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add edx, 0xffffffbc
mov esi, dword [esp + 0x20]
movzx eax, al
mov dword [esp + 0x1c], eax
sub eax, ecx
add edx, eax
cmp dword [vtable.type_info.0], 3
mov dword [esp + 0x2c], edx
jne 0x101e68d
cmp dword [0x1058684], 0
jne 0x101e68d
mov eax, esi
sub eax, dword [esp + 0x24]
sub eax, 2
mov dword [esp + 0x2c], eax
jmp 0x101e69c
mov esi, dword [esp + 0x24]
add esi, 0xffffffa2
add esi, edx
mov dword [0x10585d0], esi
mov eax, dword [esp + 0x1c]
cdq
cmp edi, edx
jb 0x101e6dd
ja 0x101e6ab
cmp ecx, eax
jb 0x101e6dd
mov al, byte [0x1058667]
mov ecx, dword [esp + 0x2c]
imul cl
mov byte [0x1058667], al
mov eax, ecx
sub eax, dword [esp + 0x1c]
sub eax, 0x3ac3
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [0x10585d8], eax
mov dword [esp + 0x14], edi
mov dword [0x10585dc], edi
jmp 0x101e6e1
mov ecx, dword [esp + 0x2c]
sub bl, byte [esp + 0x18]
lea ecx, [ecx + 0x10530b0]
mov eax, 0x1052ac8
sub bl, 2
sub eax, 0x10ef8c8
mov byte [0x10585c0], bl
add ecx, eax
movzx eax, byte [0x1058673]
cdq
cmp edx, edi
mov dword [0x10585cc], ecx
mov edx, dword [esp + 0x18]
ja 0x101e740
jb 0x101e71c
cmp eax, edx
ja 0x101e740
mov al, dl
mov byte [0x105866f], bl
sub al, bl
mov ecx, edx
lea ebx, [eax - 0x1f]
movzx eax, bl
sub ecx, eax
mov byte [0x10585c0], bl
sub ecx, 0x10
mov dword [0x10585cc], ecx
nop
inc dword [esp + 0x38]
movzx eax, bl
mov dword [esp + 0x1c], eax
cmp ecx, eax
jb 0x101e783
push edi
push edx
push dword [0x105861c]
push dword [0x1058618]
call fcn.0100c6c0
mov dword [0x105861c], edx
mov edx, dword [esp + 0x18]
mov ecx, edx
sub ecx, dword [esp + 0x1c]
sub ecx, 0x3ac3
mov dword [0x1058618], eax
mov dword [0x10585cc], ecx
cmp ecx, 0x76
jbe 0x101e7e6
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov dword [esp + 0x2c], eax
mov eax, dword [0x10585f4]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1058634]
adc dword [esp + 0x1c], eax
cmp dword [esp + 0x2c], 0x1b4
jne 0x101e7cb
cmp dword [esp + 0x1c], 0
jne 0x101e7cb
sub cl, 0x5e
add bl, cl
mov ecx, edx
movzx eax, bl
sub ecx, eax
sub ecx, 0x10
jmp 0x101e7da
mov al, byte [0x10585e0]
mov ecx, 0xffffc53d
sub al, bl
lea ebx, [edx + eax]
mov dword [0x10585cc], ecx
mov byte [0x10585c0], bl
xor eax, eax
cmp eax, edi
jb 0x101e825
ja 0x101e7f2
cmp ecx, edx
jb 0x101e825
push dword [0x105861c]
push dword [0x1058618]
push 0
push esi
call fcn.0100c6c0
mov dword [0x105861c], edx
mov ecx, esi
mov edx, dword [esp + 0x18]
sub ecx, edx
sub ecx, 0x3ac3
mov dword [0x1058618], eax
mov dword [0x10585cc], ecx
mov edi, dword [esp + 0x38]
cmp edi, 0x35
jge 0x101e8b8
cmp dword [vtable.type_info.0], 3
jne 0x101e854
cmp dword [0x1058684], 0
jne 0x101e854
movzx eax, bl
mov edi, edx
sub edi, eax
sub edi, 2
mov dword [esp + 0x38], edi
jmp 0x101e868
movzx eax, bl
add eax, 0xffffffa2
add eax, edi
cdq
mov dword [0x10585d8], eax
mov dword [0x10585dc], edx
sub esi, dword [esp + 0x24]
lea eax, [esp + 0x48]
push 0x646
push eax
add esi, ecx
push 0x1034878
mov dword [0x10585c4], esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, dword [0x10585d0]
mov ecx, esi
mov eax, dword [0x10585c4]
sub ecx, eax
mov edx, dword [0x10585d8]
sub ecx, 0x10
mov bl, byte [0x10585c0]
mov dword [esp + 0x24], eax
mov eax, dword [0x10585dc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [0x10585f0]
mov edi, esi
sub edi, dword [esp + 0x24]
add edi, 0xd2e1
add eax, dword [0x1058630]
mov dword [esp + 0x2c], eax
mov eax, dword [0x10585f4]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1058634]
adc dword [esp + 0x1c], eax
cmp dword [esp + 0x2c], 0x1b4
mov dword [0x10585c4], edi
jne 0x101e90d
cmp dword [esp + 0x1c], 0
jne 0x101e90d
sub cl, 0x5e
add bl, cl
mov ecx, edx
movzx eax, bl
sub ecx, eax
sub ecx, 0x10
jmp 0x101e91c
mov al, byte [0x10585e0]
mov ecx, 0xffffc53d
sub al, bl
lea ebx, [edx + eax]
mov eax, dword [esp + 0x40]
mov dword [0x10585cc], ecx
mov byte [0x10585c0], bl
cmp eax, 7
jae 0x101e940
dec eax
mov dword [esp + 0x40], eax
sub eax, esi
add edi, eax
mov dword [0x10585c4], edi
mov eax, dword [esp + 0x14]
cmp dword [0x105867c], eax
ja 0x101e98a
jb 0x101e956
cmp dword [0x1058678], edx
ja 0x101e98a
movzx eax, bl
cdq
mov dword [0x1058658], eax
mov dword [0x105865c], edx
mov edx, dword [esp + 0x18]
mov al, dl
sub al, bl
mov ecx, edx
lea ebx, [eax - 0x1f]
movzx eax, bl
sub ecx, eax
mov byte [0x10585c0], bl
mov eax, dword [esp + 0x14]
sub ecx, 0x10
mov dword [0x10585cc], ecx
cmp dword [0x105867c], 0
ja 0x101e9cd
jb 0x101e99d
cmp dword [0x1058678], esi
ja 0x101e9cd
mov dword [0x105865c], eax
lea ecx, [esi + 0xd2e1]
xor eax, eax
mov dword [0x1058658], edx
sub ecx, edx
mov edx, ecx
mov ecx, esi
sbb eax, dword [esp + 0x14]
sub ecx, edx
sub ecx, 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [0x10585cc], ecx
mov eax, dword [esp + 0x3c]
sub eax, edi
sub eax, 0x10
mov dword [esp + 0x2c], eax
mov dword [0x10585d4], eax
cmp edi, 0xd948
jbe 0x101eb02
lea edi, [ecx - 0x5e]
mov dword [esp + 0x1c], 0
add edi, esi
cmp eax, edx
mov eax, dword [esp + 0x14]
mov dword [0x10585c4], edi
jne 0x101eac9
cmp dword [esp + 0x1c], eax
jne 0x101eac9
cmp dword [0x105867c], eax
ja 0x101ea52
jb 0x101ea26
cmp dword [0x1058678], edx
ja 0x101ea52
mov ecx, dword [esp + 0x18]
movzx eax, bl
cdq
mov dword [0x1058658], eax
mov al, cl
sub al, bl
mov dword [0x105865c], edx
sub al, 0x1f
mov byte [0x10585c0], al
movzx eax, al
sub ecx, eax
sub ecx, 0x10
mov dword [0x10585cc], ecx
mov ecx, edi
call fcn.0101f2e0
mov bl, byte [0x10585c0]
movzx eax, bl
mov dword [esp + 0x1c], eax
cdq
cmp dword [0x105867c], edx
ja 0x101eab2
jb 0x101ea79
cmp dword [0x1058678], eax
ja 0x101eab2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
add eax, 0xd2e1
mov esi, dword [esp + 0x14]
cdq
sub eax, ecx
mov dword [0x105865c], esi
mov dword [0x1058658], ecx
mov ecx, dword [esp + 0x1c]
sbb edx, esi
mov dword [esp + 0x14], edx
mov esi, ecx
mov edx, eax
mov dword [esp + 0x18], eax
sub esi, edx
sub esi, 0x10
jmp 0x101eac0
mov esi, dword [0x10585d0]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ecx, 6
add ecx, edx
cmp dword [0x105867c], 0
ja 0x101eb02
jb 0x101eadc
cmp dword [0x1058678], esi
ja 0x101eb02
mov dword [0x105865c], eax
lea ecx, [esi + 0xd2e1]
xor eax, eax
mov dword [0x1058658], edx
sub ecx, edx
mov edx, ecx
mov ecx, esi
sbb eax, dword [esp + 0x14]
sub ecx, edx
mov dword [esp + 0x14], eax
sub ecx, 0x10
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov dword [esp + 0x28], eax
mov eax, dword [0x10585f4]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1058634]
adc dword [esp + 0x1c], eax
cmp dword [esp + 0x28], 0x1b4
jne 0x101eb42
cmp dword [esp + 0x1c], 0
jne 0x101eb42
lea eax, [ecx - 0x5e]
mov ecx, edi
add eax, esi
sub ecx, eax
sub ecx, 0x10
jmp 0x101eb50
mov eax, dword [0x10585e0]
mov ecx, 0xffffc53d
sub eax, esi
add eax, edi
cmp dword [esp + 0x3c], 0xd
mov dword [0x10585cc], ecx
mov dword [esp + 0x20], eax
jae 0x101ec11
cmp dword [0x1058620], 0x1ba6
jne 0x101eb82
cmp dword [0x1058624], 0
jne 0x101eb82
mov edi, ecx
mov dword [0x10585c4], edi
cmp dword [0x105867c], 0
ja 0x101ebc2
jb 0x101eb95
cmp dword [0x1058678], ecx
ja 0x101ebc2
mov dword [0x1058658], eax
mov esi, ecx
mov eax, ecx
mov dword [0x105865c], 0
sub eax, dword [esp + 0x20]
add eax, 0xd2e1
sub esi, eax
mov dword [esp + 0x20], eax
sub esi, 0x10
mov dword [0x10585d4], esi
jmp 0x101ebc6
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
dec eax
cmp dword [0x105867c], 0
mov dword [esp + 0x3c], eax
ja 0x101ec15
jb 0x101ebe2
cmp dword [0x1058678], eax
ja 0x101ec15
mov esi, dword [esp + 0x3c]
sub eax, edi
mov dword [0x1058658], edi
mov dword [0x105865c], 0
lea edi, [eax + 0xd2e1]
sub esi, edi
mov dword [0x10585c4], edi
sub esi, 0x10
mov dword [0x10585d4], esi
jmp 0x101ec15
mov esi, dword [esp + 0x2c]
cmp dword [vtable.type_info.0], 3
jne 0x101ec47
cmp dword [0x1058684], 0
jne 0x101ec47
sub ecx, dword [esp + 0x20]
mov bl, dl
sub ecx, 2
sub bl, cl
mov dword [0x10585c4], ecx
mov ecx, dword [esp + 0x20]
sub bl, 2
mov byte [0x10585c0], bl
jmp 0x101ec65
mov ecx, dword [esp + 0x20]
lea edx, [edi - 0x5e]
mov dword [esp + 0x14], 0
lea eax, [ecx - 0x5e]
add eax, edi
mov dword [0x10585cc], eax
movzx eax, bl
add edx, eax
xor eax, eax
lea edi, [ecx + 0xd2e1]
sub edi, edx
mov edx, edi
mov dword [esp + 0x1c], edi
sbb eax, dword [esp + 0x14]
mov dword [0x10585dc], eax
mov eax, dword [esp + 0x30]
mov dword [0x10585d8], edx
test eax, eax
je 0x101edb4
sub eax, esi
sub eax, 0x10
mov dword [0x10585d0], eax
call fcn.01002030
mov eax, dword [0x10585f0]
add eax, dword [0x1058630]
mov ecx, dword [0x10585f4]
adc ecx, dword [0x1058634]
mov ebx, dword [0x10585c4]
mov dword [esp + 0x24], ebx
cmp eax, 0x1b4
jne 0x101ecdc
test ecx, ecx
jne 0x101ecdc
mov esi, dword [0x10585d8]
add esi, 0xffffffa2
add esi, dword [0x10585d0]
jmp 0x101ecea
mov esi, dword [0x10585e0]
sub esi, dword [0x10585d0]
add esi, ebx
mov eax, dword [esp + 0x34]
lea edx, [esi - 0x27]
mov ecx, dword [0x10585cc]
xor edi, edi
neg edx
mov dword [esp + 0x18], edx
adc edi, edi
mov dword [0x10585d8], edx
dec dword [esp + 0x30]
sub eax, edx
sub eax, 0x10
neg edi
mov dword [0x10585d4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edi
mov dword [0x10585dc], edi
cmp eax, 4
jae 0x101ed9c
cmp dword [0x1058620], 0x1ba6
jne 0x101ed41
cmp dword [0x1058624], 0
jne 0x101ed41
mov ebx, ecx
dec eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], eax
cmp dword [esp + 0x1c], edi
jb 0x101ed91
ja 0x101ed5a
cmp ecx, edx
jb 0x101ed91
push dword [0x105861c]
push dword [0x1058618]
push 0
push esi
call fcn.0100c6c0
mov dword [0x105861c], edx
mov ecx, esi
mov edx, dword [esp + 0x18]
sub ecx, edx
sub ecx, 0x3ac3
mov dword [0x1058618], eax
mov eax, dword [esp + 0x34]
mov dword [0x10585cc], ecx
sub eax, ebx
add eax, 0xd2e1
mov dword [esp + 0x24], eax
mov bl, byte [0x10585c0]
mov esi, 0xfffffff3
sub esi, edx
mov dword [0x10585d0], esi
jmp 0x101e740
mov eax, dword [esp + 0x44]
mov esi, dword [0x10585f0]
add eax, 6
add eax, edx
add esi, dword [0x1058630]
mov dword [esp + 0x40], eax
mov eax, dword [0x10585f4]
adc eax, dword [0x1058634]
cmp esi, 0x1b4
jne 0x101edf3
test eax, eax
jne 0x101edf3
sub cl, 0x5e
add bl, cl
movzx eax, bl
sub edx, eax
sub edx, 0x10
jmp 0x101ee02
mov eax, dword [0x10585e0]
sub al, bl
lea ebx, [edx + eax]
mov edx, 0xffffc53d
cmp dword [0x105867c], 0
mov dword [0x10585d0], edx
ja 0x101ee44
mov ecx, dword [esp + 0x40]
jb 0x101ee1f
cmp dword [0x1058678], ecx
ja 0x101ee44
mov eax, ecx
mov dword [0x1058658], edx
sub eax, edx
mov dword [0x105865c], 0
lea edx, [eax + 0xd2e1]
sub cl, dl
mov dword [0x10585d0], edx
lea ebx, [ecx - 0x10]
movzx ecx, byte [0x1058662]
lea edx, [edx*2 - 0x5cc]
lea eax, [edx + 0x5d2]
mov dword [0x10585cc], edx
mov dword [0x10585c4], eax
movzx eax, byte [0x105866a]
add ecx, eax
cmp ecx, 0x1b4
jne 0x101ee99
add bl, 0x6e
mov dword [0x10585dc], 0
movzx eax, bl
mov ecx, edx
sub ecx, eax
mov byte [0x10585c0], bl
sub ecx, 0x10
mov dword [0x10585d8], ecx
jmp 0x101eebb
mov al, byte [0x1058660]
sub al, bl
mov dword [0x10585d8], 0xffffc53d
add al, dl
mov dword [0x10585dc], 0xffffffff
mov byte [0x10585c0], al
push dword [0x10ef144]
push edx
call fcn.0102c3c0
movzx ecx, byte [0x10585c0]
add esp, 8
mov dword [0x10585d0], eax
add ecx, 6
mov eax, dword [0x10585d8]
add eax, ecx
mov dword [0x20585d4], eax
add eax, 0x8b000605
or eax, 0x10585d8
mov eax, 0x27
mov edx, dword [0x10585c4]
sub eax, ecx
sub eax, dword [0x10585cc]
add edx, eax
cmp dword [vtable.type_info.0], 3
mov dword [0x10585c4], edx
jne 0x101ef2d
cmp dword [0x1058684], 0
jne 0x101ef2d
sub ecx, dword [0x10585d0]
sub ecx, 2
mov dword [0x10585c4], ecx
jmp 0x101ef46
mov eax, dword [0x10585d0]
add eax, 0xffffffa2
mov dword [0x10585dc], 0
add eax, edx
mov dword [0x10585d8], eax
mov ecx, dword [esp + 0x694]
movzx eax, byte [0x10585c0]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.010076be
add esp, 0x690
ret