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

Disassembly:
push ecx
push esi
mov esi, ecx
mov al, 1
push 0x10
mov byte [esi + 0x6c], al
mov byte [esi + 0x6e], al
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10155107
mov dword [eax], 0xffffffff
mov dword [eax + 4], 2
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
jmp 0x10155109
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 4]
push eax
lea ecx, [esi + 0xb0]
call fcn.10160b70
lea ecx, [esp + 4]
push ecx
lea ecx, [esi + 0x90]
call fcn.101549c0
mov edx, dword [esi + 0x100]
mov eax, dword [edx + 4]
add esi, 0xe8
push eax
mov ecx, esi
call fcn.101544c0
mov eax, dword [esi + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], 0
mov dword [eax], eax
mov esi, dword [esi + 0x18]
mov dword [esi + 8], esi
pop esi
pop ecx
ret
sub esp, 0x5c
push esi
mov esi, ecx
cmp byte [esi + 0x6d], 0
jne 0x10156d55
cmp byte [esi + 0x6c], 0
jne 0x10156d1b
pop esi
add esp, 0x5c
jmp 0x101550d0
call fcn.10155a20
mov ecx, esi
call fcn.101568e0
mov ecx, esi
call fcn.1015af20
test al, al
jne 0x10156d5a
cmp dword [esi + 0xc], 0
jle 0x10156d3f
mov dword [esi + 0xc], 0
mov ecx, esi
call fcn.10156b10
mov ecx, esi
call fcn.1015c660
mov byte [esi + 0x6e], 0
mov byte [esi + 0x6d], 1
pop esi
add esp, 0x5c
ret
cmp dword [esi + 0xc], 0
jne 0x10156dba
mov ecx, esi
call fcn.1015af00
cmp al, 0x25
jne 0x10156d76
mov ecx, esi
pop esi
add esp, 0x5c
jmp fcn.1015d7a0
cmp dword [esi + 0xc], 0
jne 0x10156dba
push esi
call fcn.10153aa0
mov ecx, eax
call fcn.10155070
test al, al
je 0x10156d98
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e1e0
cmp dword [esi + 0xc], 0
jne 0x10156dba
push esi
call fcn.10153be0
mov ecx, eax
call fcn.10155070
test al, al
je 0x10156dba
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e290
mov ecx, esi
call fcn.1015af00
cmp al, 0x5b
je 0x10156f66
mov ecx, esi
call fcn.1015af00
cmp al, 0x7b
je 0x10156f66
mov ecx, esi
call fcn.1015af00
cmp al, 0x5d
je 0x10156f5b
mov ecx, esi
call fcn.1015af00
cmp al, 0x7d
je 0x10156f5b
mov ecx, esi
call fcn.1015af00
cmp al, 0x2c
jne 0x10156e0c
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e5f0
push esi
call fcn.10153d20
mov ecx, eax
call fcn.10155070
test al, al
je 0x10156e28
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e730
cmp dword [esi + 0xe4], 0
jne 0x10156e38
call fcn.10153140
jmp 0x10156e3d
call fcn.10153e00
push esi
mov ecx, eax
call fcn.10155070
mov ecx, esi
test al, al
je 0x10156e54
pop esi
add esp, 0x5c
jmp 0x1015e880
push esi
call fcn.101544a0
mov ecx, eax
call fcn.10155070
mov ecx, esi
test al, al
je 0x10156e70
pop esi
add esp, 0x5c
jmp 0x1015e990
call fcn.1015af00
cmp al, 0x2a
je 0x10156f50
mov ecx, esi
call fcn.1015af00
cmp al, 0x26
je 0x10156f50
mov ecx, esi
call fcn.1015af00
cmp al, 0x21
jne 0x10156ea2
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015edd0
cmp dword [esi + 0xe4], 0
jne 0x10156ecc
mov ecx, esi
call fcn.1015af00
cmp al, 0x7c
je 0x10156ec1
mov ecx, esi
call fcn.1015af00
cmp al, 0x3e
jne 0x10156ecc
mov ecx, esi
pop esi
add esp, 0x5c
jmp fcn.1015f600
mov ecx, esi
call fcn.1015af00
cmp al, 0x27
je 0x10156f45
mov ecx, esi
call fcn.1015af00
cmp al, 0x22
je 0x10156f45
cmp dword [esi + 0xe4], 0
jne 0x10156ef2
call fcn.101540c0
jmp 0x10156ef7
call fcn.101542b0
push esi
mov ecx, eax
call fcn.10155070
test al, al
je 0x10156f0e
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015efb0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 4], eax
push 0x102729c0
lea eax, [esp + 8]
mov dword [esp + 0xc], ecx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], edx
call fcn.10150d10
push 0x10255cd8
lea ecx, [esp + 0x14]
push ecx
call fcn.10173221
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015f290
mov ecx, esi
pop esi
add esp, 0x5c
jmp fcn.1015eab0
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e410
mov ecx, esi
pop esi
add esp, 0x5c
jmp 0x1015e340
push 0xffffffffffffffff
push 0x1018e9b8
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov esi, ecx
call fcn.10156b10
mov ecx, esi
call fcn.1015c660
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
push 3
mov ecx, esi
mov byte [esi + 0x6e], 0
mov byte [esi + 0x6f], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
call fcn.1015b860
lea eax, [esp + 8]
push eax
push 1
lea ecx, [esp + 0x1c]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0x6c], 0
call fcn.10156290
lea ecx, [esp + 0x44]
call fcn.100ef7c0
cmp dword [esp + 0x40], 0x10
jb 0x1015e276
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x64
ret
push 0xffffffffffffffff
push 0x1018e9b8
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov esi, ecx
call fcn.10156b10
mov ecx, esi
call fcn.1015c660
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
push 3
mov ecx, esi
mov byte [esi + 0x6e], 0
mov byte [esi + 0x6f], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
call fcn.1015b860
lea eax, [esp + 8]
push eax
push 2
lea ecx, [esp + 0x1c]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0x6c], 0
call fcn.10156290
lea ecx, [esp + 0x44]
call fcn.100ef7c0
cmp dword [esp + 0x40], 0x10
jb 0x1015e326
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x64
ret
push 0xffffffffffffffff
push 0x1018e9e8
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
call fcn.1015ca70
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, esi
mov byte [esi + 0x6e], 1
mov byte [esi + 0x6f], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
call fcn.1015b720
xor ecx, ecx
cmp al, 0x5b
sete cl
lea edx, [esp + 0xc]
push edx
mov edi, ecx
lea ecx, [esi + 0xc8]
mov dword [esp + 0x10], edi
call fcn.101549c0
xor eax, eax
cmp edi, 1
setne al
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x20]
add eax, 8
push eax
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0x74], 0
call fcn.10156290
lea ecx, [esp + 0x4c]
call fcn.100ef7c0
cmp dword [esp + 0x48], 0x10
jb 0x1015e3f5
mov edx, dword [esp + 0x34]
push edx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x68
ret
push 0xffffffffffffffff
push 0x1018ea23
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebp
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0xe4], 0
jne 0x1015e486
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x10], eax
push 0x102767fc
lea eax, [esp + 0x14]
mov dword [esp + 0x18], ecx
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], edx
call fcn.100415d0
push 0x10255cd8
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x24], vtable.YAML142::ParserException.0
call fcn.10173221
lea ebp, [esi + 0xc8]
mov ecx, ebp
call fcn.1015d100
cmp dword [eax], 0
jne 0x1015e4f2
mov ecx, esi
call fcn.1015c7e0
test al, al
je 0x1015e4f2
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x1c], ecx
push 0xf
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], eax
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xc4], 0
call fcn.10156290
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc0], 0xffffffff
call fcn.101554e0
jmp 0x1015e505
mov ecx, ebp
call fcn.1015d100
cmp dword [eax], 1
jne 0x1015e505
mov ecx, esi
call fcn.1015c770
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, esi
mov byte [esi + 0x6e], 0
mov byte [esi + 0x6f], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
call fcn.1015b720
xor ecx, ecx
cmp al, 0x5d
sete cl
mov edi, ecx
mov ecx, ebp
call fcn.1015d100
cmp dword [eax], edi
je 0x1015e567
push 0x102767fc
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x24]
call fcn.100415d0
push 0x10255cd8
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], vtable.YAML142::ParserException.0
call fcn.10173221
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x1015e57d
add eax, 0xffffffff
mov dword [ebp + 0x1c], eax
jne 0x1015e57d
mov dword [ebp + 0x18], 0
neg edi
sbb edi, edi
lea ecx, [esp + 0x10]
push ecx
add edi, 0xb
push edi
lea ecx, [esp + 0x74]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xc4], 1
call fcn.10156290
lea ecx, [esp + 0x9c]
call fcn.100ef7c0
cmp dword [esp + 0x98], 0x10
jb 0x1015e5cd
mov edx, dword [esp + 0x84]
push edx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0xb4
ret
push 0xffffffffffffffff
push 0x1018ea63
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0xe4], 0
je 0x1015e6a5
lea edi, [esi + 0xc8]
mov ecx, edi
call fcn.1015d100
cmp dword [eax], 0
jne 0x1015e692
mov ecx, esi
call fcn.1015c7e0
test al, al
je 0x1015e692
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x14], ecx
push 0xf
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1c], edx
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xbc], 0
call fcn.10156290
lea ecx, [esp + 0x64]
mov dword [esp + 0xb8], 0xffffffff
call fcn.101554e0
jmp 0x1015e6a5
mov ecx, edi
call fcn.1015d100
cmp dword [eax], 1
jne 0x1015e6a5
mov ecx, esi
call fcn.1015c770
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
push 1
mov ecx, esi
mov byte [esi + 0x6e], 1
mov byte [esi + 0x6f], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
call fcn.1015b860
lea ecx, [esp + 0xc]
push ecx
push 0xd
lea ecx, [esp + 0x20]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xbc], 1
call fcn.10156290
lea ecx, [esp + 0x48]
call fcn.100ef7c0
cmp dword [esp + 0x44], 0x10
jb 0x1015e70c
mov edx, dword [esp + 0x30]
push edx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0xb0
ret
push 0xffffffffffffffff
push 0x1018ea98
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0xe4], 0
je 0x1015e7a4
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 8], eax
push 0x10276818
lea eax, [esp + 0xc]
mov dword [esp + 0x10], ecx
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], edx
call fcn.100415d0
push 0x10255cd8
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], vtable.YAML142::ParserException.0
call fcn.10173221
cmp byte [esi + 0x6e], 0
jne 0x1015e7e9
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp + 8], edx
push 0x10276818
lea edx, [esp + 0xc]
mov dword [esp + 0x14], ecx
push edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.100415d0
push 0x10255cd8
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], vtable.YAML142::ParserException.0
call fcn.10173221
mov eax, dword [esi + 0xc]
push 1
push eax
call fcn.101564b0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 8], ecx
push 1
mov ecx, esi
mov byte [esi + 0x6e], 1
mov byte [esi + 0x6f], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
call fcn.1015b860
lea ecx, [esp + 8]
push ecx
push 7
lea ecx, [esp + 0x6c]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xbc], 0
call fcn.10156290
lea ecx, [esp + 0x94]
call fcn.100ef7c0
cmp dword [esp + 0x90], 0x10
jb 0x1015e861
mov edx, dword [esp + 0x7c]
push edx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xb4
ret
push 0xffffffffffffffff
push 0x1018eacb
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0xe4], 0
jne 0x1015e90c
cmp byte [esi + 0x6e], 0
jne 0x1015e8fa
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 8], eax
push 0x10276834
lea eax, [esp + 0xc]
mov dword [esp + 0x10], ecx
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x18], edx
call fcn.100415d0
push 0x10255cd8
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x68], vtable.YAML142::ParserException.0
call fcn.10173221
mov eax, dword [esi + 0xc]
push 0
push eax
call fcn.101564b0
cmp dword [esi + 0xe4], 0
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
sete dl
mov byte [esi + 0x6e], dl
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
push 1
mov ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
call fcn.1015b860
lea eax, [esp + 8]
push eax
push 0xe
lea ecx, [esp + 0x1c]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xbc], 0
call fcn.10156290
lea ecx, [esp + 0x44]
call fcn.100ef7c0
cmp dword [esp + 0x40], 0x10
jb 0x1015e971
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xb4
ret
push 0xffffffffffffffff
push 0x1018eacb
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov esi, ecx
call fcn.1015c7e0
mov byte [esi + 0x6f], 0
test al, al
je 0x1015e9cf
mov byte [esi + 0x6e], 0
jmp 0x1015ea37
cmp dword [esi + 0xe4], 0
jne 0x1015ea31
cmp byte [esi + 0x6e], 0
jne 0x1015ea1d
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 8], eax
push 0x10276850
lea eax, [esp + 0xc]
mov dword [esp + 0x10], ecx
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x18], edx
call fcn.100415d0
push 0x10255cd8
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x68], vtable.YAML142::ParserException.0
call fcn.10173221
mov eax, dword [esi + 0xc]
push 0
push eax
mov ecx, esi
call fcn.101564b0
cmp dword [esi + 0xe4], 0
sete dl
mov byte [esi + 0x6e], dl
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
push 1
mov ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
call fcn.1015b860
lea eax, [esp + 8]
push eax
push 0xf
lea ecx, [esp + 0x1c]
call fcn.10155460
push eax
lea ecx, [esi + 0x4c]
mov dword [esp + 0xbc], 0
call fcn.10156290
lea ecx, [esp + 0x44]
call fcn.100ef7c0
cmp dword [esp + 0x40], 0x10
jb 0x1015ea96
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xb4
ret
push 0xffffffffffffffff
push 0x1018eb60
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x10279264]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov esi, ecx
call fcn.1015ca70
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
xor ebx, ebx
mov dword [esp + 0x18], ecx
push 0x12
lea ecx, [esp + 0x40]
mov byte [esi + 0x6e], bl
mov byte [esi + 0x6f], bl
mov dword [esp + 0x20], edx
call fcn.10155460
mov ecx, esi
mov dword [esp + 0x90], ebx
call fcn.1015b720
mov ecx, esi
call fcn.1015af20
test al, al
je 0x1015eead
mov ecx, esi
call fcn.1015af00
cmp al, 0x3c
jne 0x1015eead
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.10162750
add esp, 8
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x9c], 1
call fcn.10004b90
cmp dword [esp + 0x34], 0x10
mov dword [esp + 0x80], ebx
mov byte [esp + 0x90], bl
jb 0x1015ef60
mov eax, dword [esp + 0x20]
push eax
call fcn.1016d679
add esp, 4
jmp 0x1015ef60
lea ecx, [esp + 0xf]
push ecx
lea edx, [esp + 0x20]
push esi
push edx
call fcn.10162960
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x9c], 2
call fcn.10004b90
cmp dword [esp + 0x34], 0x10
mov byte [esp + 0x90], bl
jb 0x1015eef0
mov eax, dword [esp + 0x20]
push eax
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x60]
neg ecx
sbb ecx, ecx
add ecx, 2
mov dword [esp + 0x80], ecx
cmp byte [esp + 0xf], bl
je 0x1015ef60
mov ecx, esi
call fcn.1015af00
cmp al, 0x21
jne 0x1015ef60
mov ecx, esi
call fcn.1015b720
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.10162c80
add esp, 8
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x94], 3
call fcn.100ef810
cmp dword [esp + 0x34], 0x10
mov byte [esp + 0x90], bl
jb 0x1015ef55
mov eax, dword [esp + 0x20]
push eax
call fcn.1016d679
add esp, 4
mov dword [esp + 0x80], 3
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esi + 0x4c]
call fcn.10156290
lea ecx, [esp + 0x68]
call fcn.100ef7c0
cmp dword [esp + 0x64], 0x10
jb 0x1015ef8a
mov edx, dword [esp + 0x50]
push edx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.1016cb16
add esp, 0x88
ret
push 0xffffffffffffffff
push 0x1018ebd7
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x10279264]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x12c]
mov dword fs:[0], eax
xor ebx, ebx
mov esi, ecx
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x10]
mov dword [esp + 0x134], ebx
call fcn.1015b980
mov byte [esp + 0x30], bl
mov dword [esp + 0x34], ebx
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x50], bl
mov byte [esp + 0x134], 1
cmp dword [esi + 0xe4], ebx
je 0x1015f05a
call fcn.1015d310
jmp 0x1015f05f
call fcn.1015d230
mov edi, eax
lea eax, [esp + 0xa0]
push eax
call fcn.10155980
add esp, 4
push eax
mov byte [esp + 0x138], 2
call fcn.10153a20
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.1015c570
push eax
lea edx, [esp + 0x70]
push edi
push edx
mov byte [esp + 0x14c], 3
call fcn.1015c450
add esp, 0x18
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov dl, byte [eax + 4]
mov byte [esp + 0x14], dl
mov cl, byte [eax + 5]
add eax, 8
mov byte [esp + 0x15], cl
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x138], 4
call fcn.1015bc70
lea ecx, [esp + 0x68]
mov byte [esp + 0x134], 3
call fcn.10152ed0
lea ecx, [esp + 0x88]
mov byte [esp + 0x134], 2
call fcn.10152ed0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x134], 1
call fcn.10152ed0
mov byte [esp + 0x30], bl
cmp dword [esi + 0xe4], ebx
je 0x1015f118
mov dword [esp + 0x34], ebx
jmp 0x1015f124
mov ecx, esi
call fcn.10153440
inc eax
mov dword [esp + 0x34], eax
mov eax, 2
mov ecx, esi
mov dword [esp + 0x3c], eax
mov byte [esp + 0x39], 1
mov byte [esp + 0x40], 1
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], eax
call fcn.1015ca70
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x64]
push esi
push eax
mov dword [esp + 0x68], ecx
call fcn.10162fa0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xcc]
mov byte [esp + 0x140], 5
call fcn.10004b90
mov edi, 0x10
mov byte [esp + 0x134], 1
cmp dword [esp + 0x78], edi
jb 0x1015f1b2
mov ecx, dword [esp + 0x64]
push ecx
call fcn.1016d679
add esp, 4
mov dl, byte [esp + 0x50]
lea eax, [esp + 0x54]
push eax
push 0x13
lea ecx, [esp + 0xe4]
mov byte [esi + 0x6e], dl
mov byte [esi + 0x6f], bl
call fcn.10155460
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0xfc]
mov byte [esp + 0x140], 6
call fcn.10004b90
lea edx, [esp + 0xdc]
push edx
lea ecx, [esi + 0x4c]
call fcn.10156290
lea ecx, [esp + 0x10c]
call fcn.100ef7c0
cmp dword [esp + 0x108], edi
jb 0x1015f223
mov eax, dword [esp + 0xf4]
push eax
call fcn.1016d679
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x108], 0xf
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], bl
mov byte [esp + 0x134], bl
call fcn.10152ed0
cmp dword [esp + 0xd8], edi
jb 0x1015f265
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x12c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.1016cb16
add esp, 0x128
ret
push 0xffffffffffffffff
push 0x1018ecbe
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x10279264]
xor eax, esp
mov dword [esp + 0x144], eax
push ebx
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov esi, ecx
mov dword [esp + 0x104], 0xf
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], bl
mov dword [esp + 0x160], ebx
call fcn.1015af00
cmp al, 0x27
lea ecx, [esp + 0x1c]
mov byte [esp + 0x18], al
sete byte [esp + 0x17]
call fcn.1015b980
mov byte [esp + 0x3c], bl
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], bl
mov dword [esp + 0x48], ebx
mov byte [esp + 0x4c], bl
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x5c], bl
mov byte [esp + 0x160], 1
cmp byte [esp + 0x17], bl
je 0x1015f3b8
call fcn.1015d500
push eax
lea eax, [esp + 0x90]
push eax
call fcn.1015c3d0
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0xd0]
mov byte [esp + 0x164], 2
mov dword [esp + 0x14], 1
call fcn.1015b9a0
push edi
push eax
lea edx, [esp + 0xb4]
push edx
mov dword [esp + 0x16c], 3
mov dword [esp + 0x1c], 3
call fcn.1015c4e0
add esp, 0xc
mov dword [esp + 0x160], 4
mov dword [esp + 0x10], 7
jmp 0x1015f3d9
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x70]
call fcn.1015b9a0
mov dword [esp + 0x160], 5
mov dword [esp + 0x10], 8
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov dl, byte [eax + 4]
mov byte [esp + 0x20], dl
mov cl, byte [eax + 5]
add eax, 8
mov byte [esp + 0x21], cl
push eax
lea ecx, [esp + 0x28]
call fcn.1015bc70
test byte [esp + 0x10], 8
mov dword [esp + 0x160], 4
je 0x1015f41a
and dword [esp + 0x10], 0xfffffff7
lea ecx, [esp + 0x74]
call fcn.10152ed0
test byte [esp + 0x10], 4
mov dword [esp + 0x160], 3
je 0x1015f43d
and dword [esp + 0x10], 0xfffffffb
lea ecx, [esp + 0xb4]
call fcn.10152ed0
test byte [esp + 0x10], 2
mov edi, 2
mov dword [esp + 0x160], edi
je 0x1015f461
and dword [esp + 0x10], 0xfffffffd
lea ecx, [esp + 0xd4]
call fcn.10152ed0
test byte [esp + 0x10], 1
mov dword [esp + 0x160], 1
je 0x1015f47f
lea ecx, [esp + 0x94]
call fcn.10152ed0
mov al, byte [esp + 0x17]
neg al
sbb al, al
and al, 0xcb
add al, 0x5c
mov ecx, esi
mov byte [esp + 0x3c], 1
mov byte [esp + 0x46], al
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edi
mov byte [esp + 0x45], 1
mov byte [esp + 0x4c], bl
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edi
call fcn.1015ca70
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov dword [esp + 0x68], ecx
mov ecx, esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
call fcn.1015b720
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x70]
push esi
push eax
call fcn.10162fa0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xf8]
mov byte [esp + 0x16c], 6
call fcn.10004b90
mov edi, 0x10
mov byte [esp + 0x160], 1
cmp dword [esp + 0x84], edi
jb 0x1015f51e
mov ecx, dword [esp + 0x70]
push ecx
call fcn.1016d679
add esp, 4
lea edx, [esp + 0x60]
push edx
push 0x13
lea ecx, [esp + 0x110]
mov byte [esi + 0x6e], bl
mov byte [esi + 0x6f], 1
call fcn.10155460
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x128]
mov byte [esp + 0x16c], 7
call fcn.10004b90
lea ecx, [esp + 0x108]
push ecx
lea ecx, [esi + 0x4c]
call fcn.10156290
lea ecx, [esp + 0x138]
call fcn.100ef7c0
cmp dword [esp + 0x134], edi
jb 0x1015f58c
mov edx, dword [esp + 0x120]
push edx
call fcn.1016d679
add esp, 4
lea ecx, [esp + 0x24]
mov dword [esp + 0x134], 0xf
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
mov byte [esp + 0x160], bl
call fcn.10152ed0
cmp dword [esp + 0x104], edi
jb 0x1015f5ce
mov eax, dword [esp + 0xf0]
push eax
call fcn.1016d679
add esp, 4
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.1016cb16
add esp, 0x154
ret