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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1018f4a2
mov eax, dword fs:[0]
push eax
sub esp, 0x138
push ebx
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [esp + 0x5c], edx
cmp dword [eax + 0x2c], 2
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1f], dl
sete byte [esp + 0x1c]
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1b], dl
mov dword [esp + 0x30], edx
mov byte [esp + 0x14], dl
mov byte [esi + 4], dl
mov dword [esp + 0x150], edx
mov dword [esp + 0x5c], 1
mov byte [eax + 0x40], dl
call fcn.1015af20
test al, al
je 0x10163ab9
jmp 0x10163044
mov esi, dword [esp + 0x20]
mov byte [esp + 0x2b], 0
mov eax, dword [esi + 0x14]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x24]
xor ecx, ecx
mov eax, edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
cmp dword [edi + 0x3c], ecx
ja 0x1016307d
push ecx
mov ecx, edi
call fcn.1015b4f0
test al, al
je case.default.0x1016308c
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebx]
cmp edx, 6
ja case.default.0x1016308c
jmp dword [edx*4 + 0x10163b50]
mov esi, dword [eax + 0x38]
lea edi, [eax + 0x20]
mov ebx, ecx
mov ecx, dword [edi + 0x1c]
add ecx, esi
cmp esi, ecx
jbe 0x101630a9
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], esi
test edi, edi
jne 0x101630d4
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov edx, dword [ecx + 0x1c]
add edx, dword [eax + 0x18]
add esi, ebx
cmp esi, edx
ja 0x101630e1
test edi, edi
je 0x101630da
mov edi, dword [edi]
jmp 0x101630dc
mov eax, dword [edi]
mov ecx, eax
jmp 0x101630c0
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x101630e6
call fcn.1016d669
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], esi
call fcn.101529a0
mov al, byte [eax]
xor ecx, ecx
cmp al, 4
sete cl
dec ecx
mov eax, ecx
jmp 0x10163325
mov esi, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
lea edi, [eax + 0x20]
add edx, esi
mov dword [esp + 0x38], ecx
cmp esi, edx
jbe 0x1016312d
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], esi
test edi, edi
jne 0x10163162
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x38]
add ecx, dword [eax + 0x18]
add esi, edx
cmp esi, ecx
ja 0x1016316f
test edi, edi
je 0x10163168
mov edi, dword [edi]
jmp 0x1016316a
mov eax, dword [edi]
mov ecx, eax
jmp 0x1016314a
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x10163174
call fcn.1016d669
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
call fcn.101529a0
mov al, byte [eax]
xor ecx, ecx
cmp al, byte [ebx + 4]
sete cl
lea ecx, [ecx + ecx - 1]
mov eax, ecx
jmp 0x10163325
mov esi, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
lea edi, [eax + 0x20]
add edx, esi
mov ebx, ecx
cmp esi, edx
jbe 0x101631b7
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], esi
test edi, edi
jne 0x101631e8
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x101631f5
test edi, edi
je 0x101631ee
mov edi, dword [edi]
jmp 0x101631f0
mov eax, dword [edi]
mov ecx, eax
jmp 0x101631d4
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x101631fa
call fcn.1016d669
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], esi
call fcn.101529a0
mov al, byte [eax]
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 4], al
jg 0x101632e6
mov edi, dword [esp + 0x4c]
mov esi, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ebx, dword [esp + 0x48]
add edi, 0x20
add edx, esi
cmp esi, edx
jbe 0x10163246
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], esi
test edi, edi
jne 0x10163277
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x10163284
test edi, edi
je 0x1016327d
mov edi, dword [edi]
jmp 0x1016327f
mov eax, dword [edi]
mov ecx, eax
jmp 0x10163263
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x10163289
call fcn.1016d669
mov edx, dword [esp + 0xb8]
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], esi
call fcn.101529a0
mov al, byte [eax]
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 5], al
jl 0x101632e6
mov eax, 1
jmp 0x10163325
lea edx, [esp + 0x48]
push edx
mov ecx, ebx
call fcn.10152d50
jmp 0x10163325
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call fcn.10152db0
jmp 0x10163325
mov ecx, dword [ebx + 0x18]
sub ecx, dword [ebx + 0x14]
test ecx, 0xffffffe0
jne 0x101632eb
or eax, 0xffffffff
jmp 0x10163325
mov edx, dword [ebx + 0x18]
sub edx, dword [ebx + 0x14]
sar edx, 5
test edx, edx
ja 0x101632fd
call fcn.1016d669
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x48]
push eax
call fcn.101548e0
xor ecx, ecx
test eax, eax
setl cl
lea ecx, [ecx + ecx - 1]
mov eax, ecx
jmp 0x10163325
lea edx, [esp + 0x48]
push edx
mov ecx, ebx
call fcn.10154d20
test eax, eax
jge 0x101636fb
mov edi, dword [esp + 0x24]
call fcn.10153930
mov esi, eax
xor ecx, ecx
mov eax, edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], esi
cmp dword [edi + 0x3c], ecx
ja 0x10163365
push ecx
mov ecx, edi
call fcn.1015b4f0
test al, al
je case.default.0x10163370
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esi]
cmp edx, 6
ja case.default.0x10163370
jmp dword [edx*4 + 0x10163b6c]
mov esi, dword [eax + 0x38]
lea edi, [eax + 0x20]
mov eax, dword [edi + 0x1c]
add eax, esi
mov ebx, ecx
cmp esi, eax
jbe 0x1016338d
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], esi
test edi, edi
jne 0x101633be
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x101633cb
test edi, edi
je 0x101633c4
mov edi, dword [edi]
jmp 0x101633c6
mov eax, dword [edi]
mov ecx, eax
jmp 0x101633aa
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x101633d0
call fcn.1016d669
mov edx, dword [esp + 0xd0]
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], esi
call fcn.101529a0
mov al, byte [eax]
xor ecx, ecx
cmp al, 4
sete cl
dec ecx
mov eax, ecx
jmp 0x101635d0
mov esi, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
lea edi, [eax + 0x20]
add edx, esi
mov ebx, ecx
cmp esi, edx
jbe 0x1016340f
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
test edi, edi
jne 0x1016343a
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x10163447
test edi, edi
je 0x10163440
mov edi, dword [edi]
jmp 0x10163442
mov eax, dword [edi]
mov ecx, eax
jmp 0x10163426
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x1016344c
call fcn.1016d669
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x80]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
call fcn.101529a0
mov al, byte [eax]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp al, byte [edx + 4]
sete cl
lea ecx, [ecx + ecx - 1]
mov eax, ecx
jmp 0x101635d0
mov esi, dword [eax + 0x38]
lea edi, [eax + 0x20]
mov eax, dword [edi + 0x1c]
add eax, esi
mov ebx, ecx
cmp esi, eax
jbe 0x10163499
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
test edi, edi
jne 0x101634ca
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x101634d7
test edi, edi
je 0x101634d0
mov edi, dword [edi]
jmp 0x101634d2
mov eax, dword [edi]
mov ecx, eax
jmp 0x101634b6
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x101634dc
call fcn.1016d669
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], esi
call fcn.101529a0
mov al, byte [eax]
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 4], al
jg 0x10163595
mov edi, dword [esp + 0x54]
mov esi, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ebx, dword [esp + 0x50]
add edi, 0x20
add edx, esi
cmp esi, edx
jbe 0x10163528
call fcn.1016d669
mov edi, dword [edi]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], esi
test edi, edi
jne 0x10163559
call fcn.1016d669
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
add ecx, dword [eax + 0x18]
add esi, ebx
cmp esi, ecx
ja 0x10163566
test edi, edi
je 0x1016355f
mov edi, dword [edi]
jmp 0x10163561
mov eax, dword [edi]
mov ecx, eax
jmp 0x10163545
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x1016356b
call fcn.1016d669
mov edx, dword [esp + 0xb0]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
call fcn.101529a0
mov al, byte [eax]
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 5], al
jl 0x10163595
mov eax, 1
jmp 0x101635d0
or eax, 0xffffffff
jmp 0x101635d0
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.10152d50
jmp 0x101635d0
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.10152db0
jmp 0x101635d0
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.10152e20
jmp 0x101635d0
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.10154d20
test eax, eax
jge 0x101636fb
mov ecx, dword [esp + 0x24]
call fcn.1015af20
test al, al
je 0x101636fb
mov esi, dword [esp + 0x24]
cmp dword [esi + 0xc], 0
jne 0x1016361d
push esi
call fcn.10162e80
mov ecx, eax
call fcn.10155070
test al, al
je 0x1016361d
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x38]
cmp eax, 1
je 0x101636fb
cmp eax, 2
je 0x101639c4
mov edi, dword [esp + 0x2c]
cmp byte [edi + 0x2a], 0x5c
mov byte [esp + 0x1f], 1
mov byte [esp + 0x1c], 1
jne 0x10163646
push esi
call fcn.10162f00
mov ecx, eax
call fcn.10155070
test al, al
jne 0x101636e6
mov ecx, esi
call fcn.1015af00
cmp al, byte [edi + 0x2a]
jne 0x101636a9
lea ecx, [esp + 0xd8]
push esi
push ecx
call fcn.10164370
add esp, 8
mov esi, dword [esp + 0x20]
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
mov dword [esp + 0x15c], 1
call fcn.10017630
cmp dword [esp + 0xf0], 0x10
mov byte [esp + 0x150], 0
jb 0x10163049
mov edx, dword [esp + 0xdc]
push edx
call fcn.1016d679
add esp, 4
jmp 0x10163049
mov ecx, dword [esp + 0x24]
call fcn.1015b720
mov bl, al
mov byte [esp + 0x58], bl
mov ecx, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x24]
push 1
call fcn.10004ae0
cmp bl, 0x20
je 0x10163050
cmp bl, 9
je 0x10163050
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x14]
jmp 0x1016304c
mov ecx, esi
call fcn.1015b720
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x14]
mov byte [esp + 0x2b], 1
jmp 0x101636ff
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.1015af20
test al, al
je 0x10163a0e
mov edi, dword [esp + 0x2c]
cmp dword [edi + 0x38], 1
jne 0x10163737
cmp dword [esi + 0xc], 0
jne 0x10163737
push esi
call fcn.10162e80
mov ecx, eax
call fcn.10155070
test al, al
jne 0x10163ab9
push esi
mov ecx, edi
call fcn.10154e60
test eax, eax
jge 0x10163a5b
cmp dword [edi + 0x2c], 2
jne 0x10163759
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push ebx
call fcn.10004c70
push esi
call fcn.10153930
mov ecx, eax
call fcn.10154e60
push eax
mov ecx, esi
call fcn.1015b860
mov ecx, esi
call fcn.1015af00
cmp al, 0x20
jne 0x101637a9
lea esp, [esp]
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 0x24]
jl 0x10163795
cmp byte [edi + 0x28], 0
je 0x101637cf
cmp byte [esp + 0x1f], 0
jne 0x101637a9
push 1
mov ecx, esi
call fcn.1015b860
mov ecx, esi
call fcn.1015af00
cmp al, 0x20
je 0x10163780
cmp byte [edi + 0x28], 0
je 0x101637cf
cmp byte [esp + 0x1f], 0
jne 0x101637cf
mov ecx, dword [esi + 0xc]
cmp dword [edi + 0x24], ecx
lea eax, [edi + 0x24]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
jl 0x101637cb
mov ecx, eax
mov edx, dword [ecx]
mov dword [eax], edx
push esi
call fcn.101530c0
mov ecx, eax
call fcn.10155070
test al, al
je 0x10163821
mov ebx, 2
mov ecx, esi
call fcn.1015af00
cmp al, 9
jne 0x10163801
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 0x24]
jge 0x10163801
cmp dword [edi + 0x3c], ebx
je 0x10163a6d
cmp byte [edi + 0x29], 0
je 0x10163821
push 1
mov ecx, esi
call fcn.1015b860
push esi
call fcn.101530c0
mov ecx, eax
call fcn.10155070
test al, al
jne 0x101637e5
push esi
call fcn.10153930
mov ecx, eax
call fcn.10155070
push esi
mov bl, al
call fcn.101530c0
mov ecx, eax
call fcn.10155070
mov byte [esp + 0x1d], al
mov eax, dword [edi + 0x2c]
cmp eax, 1
jne 0x1016385c
cmp dword [esp + 0x30], 0
jne 0x1016385c
test bl, bl
je 0x1016385c
mov cl, byte [esp + 0x1b]
mov byte [esp + 0x14], cl
cmp byte [esp + 0x1c], 0
je 0x1016398f
sub eax, 0
je 0x1016397f
sub eax, 1
je 0x101638ad
sub eax, 1
jne 0x1016398f
test bl, bl
jne 0x1016397f
cmp byte [esp + 0x1e], bl
jne 0x1016398f
cmp byte [esp + 0x2b], bl
jne 0x1016398f
mov ecx, dword [esp + 0x20]
push 0x1022a1b8
call fcn.10017010
jmp 0x1016398f
cmp byte [esp + 0x1e], 0
jne 0x101638e8
test bl, bl
jne 0x101638ec
cmp byte [esp + 0x1b], bl
jne 0x1016396a
cmp byte [esp + 0x1d], bl
jne 0x1016396a
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 0x24]
jl 0x1016396a
mov ecx, dword [esp + 0x20]
push 0x1022a1b8
call fcn.10017010
jmp 0x101638f8
test bl, bl
je 0x1016396a
inc dword [esp + 0x30]
test bl, bl
jne 0x1016398f
cmp dword [esp + 0x30], 0
jle 0x1016398f
mov edx, dword [esp + 0x30]
push 0xa
dec edx
push edx
lea ecx, [esp + 0xe0]
call fcn.10043440
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push 0
push eax
mov dword [esp + 0x15c], 2
call fcn.10017630
lea ecx, [esp + 0xd8]
mov byte [esp + 0x150], 0
call fcn.100045c0
cmp byte [esp + 0x14], 0
jne 0x10163952
cmp byte [esp + 0x1d], 0
je 0x10163960
mov ecx, dword [esp + 0x20]
push 0x1024b878
call fcn.10017010
mov dword [esp + 0x30], 0
jmp 0x1016398f
mov ecx, dword [esp + 0x20]
push 1
push 0x1024b878
call fcn.100172a0
jmp 0x101638f8
mov ecx, dword [esp + 0x20]
push 1
push 0x1024b878
call fcn.100172a0
mov al, byte [esp + 0x1d]
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1b], al
mov byte [esp + 0x1c], 1
test bl, bl
jne 0x101639b0
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 0x24]
jl 0x10163ab5
mov ecx, esi
call fcn.1015af20
test al, al
jne 0x10163040
jmp 0x10163ab9
mov eax, esi
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], ecx
push 0x102782c4
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
call fcn.100415d0
push 0x10255cd8
lea edx, [esp + 0xf8]
push edx
mov dword [esp + 0xfc], vtable.YAML142::ParserException.0
call fcn.10173221
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x20], 0
je 0x10163ab9
mov eax, esi
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], ecx
push 0x102782e0
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
call fcn.10150d10
push 0x10255cd8
lea edx, [esp + 0xf8]
push edx
call fcn.10173221
cmp byte [edi + 0x20], 0
je 0x10163ab9
mov ecx, dword [esp + 0x24]
push eax
call fcn.1015b860
jmp 0x10163ab9
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x3c], eax
push 0x10278318
lea eax, [esp + 0x40]
mov dword [esp + 0x44], ecx
push eax
lea ecx, [esp + 0xfc]
mov dword [esp + 0x4c], edx
call fcn.100415d0
push 0x10255cd8
lea ecx, [esp + 0xf8]
push ecx
mov dword [esp + 0xfc], vtable.YAML142::ParserException.0
call fcn.10173221
mov byte [edi + 0x40], 1
mov esi, dword [esp + 0x2c]
cmp byte [esi + 0x30], 0
mov edi, dword [esp + 0x20]
je 0x10163aec
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
mov byte [esp + 0x20], 0x20
call fcn.1007a270
cmp eax, dword [edi + 0x14]
jae 0x10163aec
push 0xffffffffffffffff
inc eax
push eax
mov ecx, edi
call fcn.10004c70
mov eax, dword [esi + 0x34]
cmp eax, 0xffffffff
je 0x10163af8
test eax, eax
jne 0x10163b38
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
mov byte [esp + 0x20], 0xa
call fcn.1007a270
mov ecx, dword [esi + 0x34]
test ecx, ecx
jne 0x10163b23
mov edx, dword [edi + 0x14]
lea esi, [eax + 1]
cmp esi, edx
jae 0x10163b23
add eax, 2
jmp 0x10163b2e
cmp ecx, 0xffffffff
jne 0x10163b38
cmp eax, dword [edi + 0x14]
jae 0x10163b38
inc eax
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.10004c70
mov eax, edi
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret