Function at 0x162e228
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebp
mov ebp, dword [esp + 0x70]
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, 8
jne 0x162e812
mov eax, dword [eax + ecx*4 + 0x18]
mov ecx, dword [eax + 0xc]
mov ax, word [ecx]
mov edx, 0xff
cmp ax, dx
ja 0x162e171
cmp al, 0x64
jne 0x162e12e
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 1
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
push 0
mov ecx, esi
call edx
push 0
jmp 0x162e168
cmp al, 0x2d
jne 0x162e14c
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
push 1
mov ecx, esi
call edx
push 0
jmp 0x162e168
cmp al, 0x6c
jne 0x162e171
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 1
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
push 0
mov ecx, esi
call edx
push 1
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov eax, dword [eax + ecx*4 + 0x30]
mov dword [esp + 0x14], eax
mov edx, 1
lock xadd dword [eax], edx
mov ecx, esi
call fcn.01646560
test al, al
je 0x162e1bc
push 1
push 0
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x40], 0x17f9b34
call 0x1277000
cmp eax, 0xffffffff
je 0x162e1bc
push eax
lea ecx, [esp + 0x18]
call 0x1276280
mov edx, dword [esi]
mov edx, dword [edx + 4]
push ebx
push edi
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call edx
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
lea eax, [eax + ecx*4 + 0x20]
push eax
mov ecx, esi
call edx
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
lea eax, [eax + ecx*4 + 0x24]
push eax
mov ecx, esi
call edx
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov edi, dword [esi]
push 0xa
push 0
lea ecx, [eax + ecx*4 + 0x28]
call 0x12736b0
push edx
mov edx, dword [edi + 0x1c]
push eax
mov ecx, esi
call edx
mov dword [esp + 0x18], 0x184c268
mov eax, 0x184c268
mov ecx, 1
lock xadd dword [eax], ecx
push 0xffffffffffffffff
push 0x17f9b28
call fcn.012735b0
push 0xffffffffffffffff
push 0x17f9b1c
mov dword [esp + 0x44], eax
call fcn.012735b0
push 0xffffffffffffffff
push 0x17f9b0c
mov dword [esp + 0x48], eax
call fcn.012735b0
push 0xffffffffffffffff
push 0x17f9afc
mov dword [esp + 0x4c], eax
call fcn.012735b0
push 0xffffffffffffffff
push 0x17f9aec
mov dword [esp + 0x50], eax
call fcn.012735b0
mov ebx, eax
push 0xffffffffffffffff
push 0x17f9adc
mov dword [esp + 0x70], ebx
call fcn.012735b0
add esp, 0x30
mov edi, eax
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x5c], edi
call fcn.01268bf8
mov ecx, eax
call fcn.01268bf8
mov ecx, eax
call fcn.01268bf8
mov ecx, eax
call fcn.01268bf8
mov ecx, eax
call fcn.01268bf8
mov ecx, eax
call fcn.01268bf8
mov edx, edi
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x162e2ed
push edi
call fcn.01273020
add esp, 4
mov ecx, ebx
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x162e301
push ebx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, eax
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x162e319
push eax
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, eax
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x162e331
push eax
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, eax
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x162e349
push eax
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x34]
mov ecx, eax
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x162e361
push eax
call fcn.01273020
add esp, 4
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov eax, dword [eax + ecx*4 + 0x2c]
mov dword [esp + 0x14], eax
mov edx, 1
lock xadd dword [eax], edx
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
jle 0x162e38a
mov eax, dword [eax + 0xc]
movzx eax, word [eax]
jmp 0x162e38c
xor eax, eax
lea ecx, [esp + 0xe]
push ecx
lea ecx, [esp + 0x7c]
mov word [esp + 0x7c], ax
call 0x12726d0
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
jg 0x162e3b6
push 0
lea ecx, [esp + 0x18]
call 0x1276330
jmp 0x162e3d2
mov edx, dword [eax]
cmp edx, 1
jne 0x162e3c9
mov eax, dword [esp + 0x14]
lea ecx, [eax + 0x12]
cmp dword [eax + 0xc], ecx
je 0x162e3d2
lea ecx, [esp + 0x14]
call 0x12745d0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
mov cx, word [esp + 0xe]
mov word [eax], cx
lea ecx, [esp + 0x10]
call fcn.012b54a0
xor edi, edi
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 8]
push 0
add edx, edi
push 1
lea ecx, [esp + 0x50]
lea ebx, [eax + edx*4 + 0x14]
call 0x12c0e00
push ebx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x54]
call 0x12c2e60
push eax
lea ecx, [esp + 0x14]
call 0x12b5500
lea ecx, [esp + 0x4c]
inc edi
call fcn.012b54e0
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
cmp edi, edx
jge 0x162e44d
lea ecx, [esp + 0x10]
call 0x12b5560
test al, al
je 0x162e3f0
cmp edi, 2
je 0x162e457
cmp edi, 4
jne 0x162e4b9
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x14]
call 0x12b5580
mov ecx, eax
call 0x12b4870
push eax
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x18]
call 0x12b5580
mov ecx, eax
call 0x12b4850
push eax
lea edx, [esp + 0x6c]
push edx
call 0x12b4c50
add esp, 4
mov ecx, eax
call 0x12b4830
push eax
lea ecx, [esp + 0x74]
call fcn.012b6140
push eax
lea ecx, [esp + 0x14]
call 0x12b73b0
push 0
lea edi, [esp + 0x14]
call fcn.0162c4c0
add esp, 4
lea ecx, [esp + 0x10]
call 0x12b5560
test al, al
je 0x162e4d9
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call edx
jmp 0x162e5ed
push 1
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x58], 0x17f9ad4
call fcn.01274bf0
test al, al
je 0x162e5ed
push 0xffffffffffffffff
push 7
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
call fcn.01274b10
push 0xffffffffffffffff
push 0x17f9acc
call fcn.012735b0
add esp, 8
push 0
push 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x28], eax
call 0x12c0e00
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x60]
call 0x12c2e60
push eax
lea ecx, [esp + 0x14]
call 0x12b5500
lea ecx, [esp + 0x58]
call fcn.012b54e0
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x162e570
mov ecx, dword [esp + 0x20]
push ecx
call fcn.01273020
add esp, 4
lea edx, [esp + 0x6c]
push edx
call 0x12b4c50
add esp, 4
mov ecx, eax
call 0x12b4830
mov edi, eax
push edi
call 0x12b4960
add esp, 4
test al, al
jne 0x162e5a1
dec edi
push edi
call 0x12b4960
add esp, 4
test al, al
je 0x162e593
push 0x1d
push 2
push edi
lea ecx, [esp + 0x7c]
call fcn.012b6140
push eax
lea ecx, [esp + 0x14]
call 0x12b73b0
push 1
lea edi, [esp + 0x14]
call fcn.0162c4c0
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
add esp, 4
mov ecx, edi
push ecx
mov ecx, esi
call edx
mov eax, dword [esp + 0x24]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x162e5ed
mov edx, dword [esp + 0x24]
push edx
call fcn.01273020
add esp, 4
mov ebp, dword [ebp]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + eax*4 + 0x1c]
mov ecx, ebp
mov edx, 1
lock xadd dword [ecx], edx
mov eax, dword [ebp + 8]
test eax, eax
jle 0x162e611
mov ecx, dword [ebp + 0xc]
movzx ecx, word [ecx]
jmp 0x162e613
xor ecx, ecx
xor ebx, ebx
cmp cx, 0x72
setne bl
dec ebx
and ebx, 0x100
cmp eax, 1
jle 0x162e631
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 2]
jmp 0x162e633
xor edi, edi
xor ecx, ecx
cmp di, 0x77
setne cl
dec ecx
and ecx, 0x80
or ebx, ecx
cmp eax, 2
jle 0x162e653
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 4]
jmp 0x162e655
xor edi, edi
xor ecx, ecx
cmp di, 0x78
setne cl
dec ecx
and ecx, 0x40
or ebx, ecx
cmp eax, 3
jle 0x162e672
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 6]
jmp 0x162e674
xor edi, edi
xor ecx, ecx
cmp di, 0x72
setne cl
dec ecx
and ecx, 0x20
or ebx, ecx
cmp eax, 4
jle 0x162e691
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 8]
jmp 0x162e693
xor edi, edi
xor ecx, ecx
cmp di, 0x77
setne cl
dec ecx
and ecx, 0x10
or ebx, ecx
cmp eax, 5
jle 0x162e6b0
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 0xa]
jmp 0x162e6b2
xor edi, edi
xor ecx, ecx
cmp di, 0x78
setne cl
dec ecx
and ecx, 8
or ebx, ecx
cmp eax, 6
jle 0x162e6cf
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 0xc]
jmp 0x162e6d1
xor edi, edi
xor ecx, ecx
cmp di, 0x72
setne cl
dec ecx
and ecx, 4
or ebx, ecx
cmp eax, 7
jle 0x162e6ee
mov edx, dword [ebp + 0xc]
movzx edi, word [edx + 0xe]
jmp 0x162e6f0
xor edi, edi
xor ecx, ecx
cmp di, 0x77
setne cl
dec ecx
and ecx, 2
or ebx, ecx
cmp eax, 8
jle 0x162e70d
mov edx, dword [ebp + 0xc]
movzx eax, word [edx + 0x10]
jmp 0x162e70f
xor eax, eax
mov edx, dword [esi]
xor ecx, ecx
cmp ax, 0x78
mov eax, dword [edx + 0x28]
sete cl
or ebx, ecx
push ebx
mov ecx, esi
call eax
mov ecx, dword [esp + 0x7c]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call fcn.01646960
mov ecx, eax
call fcn.01273090
mov byte [esp + 0x78], al
mov eax, dword [esp + 0x38]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x162e75a
mov edx, dword [esp + 0x38]
push edx
call fcn.01273020
add esp, 4
test bl, 4
jne 0x162e772
test ebx, 0x100
je 0x162e76e
cmp byte [esp + 0x78], 0
jne 0x162e772
xor al, al
jmp 0x162e777
mov eax, 1
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
test bl, 2
jne 0x162e795
test bl, bl
jns 0x162e791
cmp byte [esp + 0x78], 0
jne 0x162e795
xor al, al
jmp 0x162e79a
mov eax, 1
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x20]
mov ecx, esi
call eax
pop edi
mov ecx, ebp
or edx, 0xffffffff
pop ebx
lock xadd dword [ecx], edx
jne 0x162e7ba
push ebp
call fcn.01273020
add esp, 4
lea ecx, [esp + 8]
call fcn.012b54e0
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x162e7dd
mov edx, dword [esp + 0xc]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x162e7f8
mov edx, dword [esp + 0x10]
push edx
lea ecx, [esp + 0x14]
call fcn.01261eb3
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x162e812
mov edx, dword [esp + 0x14]
push edx
call fcn.01273020
add esp, 4
pop ebp
add esp, 0x68
ret