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

Disassembly:
sub esp, 0x90
mov eax, dword [0x1854370]
xor eax, esp
mov dword [esp + 0x8c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x9c]
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x14], 0x17fef48
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov ecx, 1
lock xadd dword [eax], ecx
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x1c]
call 0x1277030
mov esi, eax
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x16524c9
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov ecx, 1
lock xadd dword [eax], ecx
push esi
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
call fcn.01274a90
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652504
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov ecx, 1
lock xadd dword [eax], ecx
push 0xffffffffffffffff
inc esi
push esi
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x1c]
call fcn.01274b10
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652542
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, 0x184c074
mov dword [esp + 0x18], eax
mov ecx, eax
mov edx, 1
lock xadd dword [ecx], edx
mov dword [esp + 0x2c], eax
mov edx, 1
lock xadd dword [ecx], edx
mov dword [esp + 0x28], eax
mov edx, 1
lock xadd dword [ecx], edx
mov dword [esp + 0x24], eax
mov ecx, 1
lock xadd dword [eax], ecx
mov edx, 0x40
push 1
mov word [esp + 0x18], dx
mov eax, dword [esp + 0x18]
xor ebx, ebx
push ebx
push eax
lea ecx, [esp + 0x28]
call fcn.01274a10
mov esi, eax
cmp esi, 0xffffffff
je 0x1652732
push esi
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x24]
call fcn.01274a90
mov edx, dword [eax]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x16525da
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
push 0xffffffffffffffff
inc esi
push esi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
call fcn.01274b10
mov edx, dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652612
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, 0x3a
push 1
mov word [esp + 0x18], ax
mov ecx, dword [esp + 0x18]
push ebx
push ecx
lea ecx, [esp + 0x24]
call fcn.01274a10
mov esi, eax
cmp esi, 0xffffffff
je 0x16526a3
push 0xffffffffffffffff
lea edx, [esi + 1]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.01274b10
mov edx, dword [eax]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x28], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x165266e
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
push esi
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call fcn.01274a90
mov edx, dword [eax]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x16526a3
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, 0x2f
push 1
mov word [esp + 0x18], ax
mov ecx, dword [esp + 0x18]
push ebx
push ecx
lea ecx, [esp + 0x24]
call fcn.01274a10
mov esi, eax
cmp esi, 0xffffffff
je 0x1652732
push esi
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x20]
call fcn.01274a90
mov edx, dword [eax]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x16526fa
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
push 0xffffffffffffffff
inc esi
push esi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.01274b10
mov edx, dword [eax]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652732
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], 0x17fef44
call 0x1277030
mov esi, eax
cmp esi, 0xffffffff
je 0x16527c2
push 0xffffffffffffffff
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x2c]
call fcn.01274b10
mov edx, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x165278d
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
push esi
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x28]
call fcn.01274a90
mov edx, dword [eax]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x16527c2
mov edx, dword [esp + 0x10]
push edx
call fcn.01273020
add esp, 4
mov eax, 0x2f
mov word [esp + 0x14], ax
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.01651a90
mov eax, dword [eax]
add esp, 0xc
mov dword [esp + 0x10], eax
mov ecx, 1
lock xadd dword [eax], ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x14]
call fcn.01274620
mov ecx, dword [edi + 4]
lea eax, [esp + 0x10]
push eax
call fcn.01273030
mov ecx, dword [esp + 0x10]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1652827
mov eax, dword [esp + 0x10]
push eax
call fcn.01273020
add esp, 4
mov ecx, dword [esp + 0x14]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1652841
mov eax, dword [esp + 0x14]
push eax
call fcn.01273020
add esp, 4
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], ebx
je 0x16528c8
mov ecx, dword [edi + 4]
mov edx, 0x3a
mov word [esp + 0x14], dx
mov eax, dword [esp + 0x14]
push eax
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.01651a90
mov eax, dword [eax]
add esp, 0xc
mov dword [esp + 0x10], eax
mov ecx, 1
lock xadd dword [eax], ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x14]
call fcn.01274620
mov ecx, dword [edi + 4]
lea eax, [esp + 0x10]
push eax
call fcn.01273030
mov ecx, dword [esp + 0x10]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x16528ae
mov eax, dword [esp + 0x10]
push eax
call fcn.01273020
add esp, 4
mov ecx, dword [esp + 0x14]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x16528c8
mov eax, dword [esp + 0x14]
push eax
call fcn.01273020
add esp, 4
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [esp + 0x38], eax
cmp eax, ebx
je 0x16528e6
lea ecx, [esp + 0x18]
call fcn.01275120
mov dword [esp + 0x34], eax
jmp 0x16528ea
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
mov dword [esp + 0x40], eax
cmp eax, ebx
je 0x1652908
lea ecx, [esp + 0x2c]
call fcn.01275120
mov dword [esp + 0x3c], eax
jmp 0x165290c
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
cmp eax, ebx
je 0x165292a
lea ecx, [esp + 0x28]
call fcn.01275120
mov dword [esp + 0x44], eax
jmp 0x165292e
mov dword [esp + 0x44], ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0x74], ecx
lea edx, [esp + 0x60]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x4c], 2
mov dword [esp + 0x60], 0xa
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], 3
mov dword [esp + 0x78], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edx
call fcn.01275120
mov dword [esp + 0x54], eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x90]
mov dword [esp + 0x34], ebx
call fcn.0169b560
mov ecx, dword [eax]
mov dword [esp + 0x7c], ecx
mov dx, word [eax + 4]
mov word [esp + 0x80], dx
mov cx, word [eax + 6]
mov word [esp + 0x82], cx
movzx edx, byte [eax + 8]
mov byte [esp + 0x84], dl
movzx ecx, byte [eax + 9]
mov byte [esp + 0x85], cl
movzx edx, byte [eax + 0xa]
mov byte [esp + 0x86], dl
movzx ecx, byte [eax + 0xb]
mov byte [esp + 0x87], cl
movzx edx, byte [eax + 0xc]
mov byte [esp + 0x88], dl
movzx ecx, byte [eax + 0xd]
mov byte [esp + 0x89], cl
movzx edx, byte [eax + 0xe]
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x8e], dl
mov al, byte [eax + 0xf]
push 0x17ffb80
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x97], al
push 0x10
lea eax, [esp + 0x8c]
push eax
call dword [0x16d56c4]
mov esi, eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x1652a63
mov ecx, dword [esp + 0x24]
push ebp
cmp dword [ecx + 8], ebx
je 0x1652a47
lea edx, [esp + 0x28]
push edx
push eax
mov ecx, edi
call fcn.01651c80
jmp 0x1652a57
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push 0x17ffb70
push ebx
push eax
call edx
mov esi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x24]
cmp esi, ebx
sete bl
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652a82
mov edx, dword [esp + 0x24]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x28]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652a9c
mov edx, dword [esp + 0x28]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x2c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652ab6
mov edx, dword [esp + 0x2c]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652ad0
mov edx, dword [esp + 0x18]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652aea
mov edx, dword [esp + 0x20]
push edx
call fcn.01273020
add esp, 4
mov eax, dword [esp + 0x1c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1652b04
mov edx, dword [esp + 0x1c]
push edx
call fcn.01273020
add esp, 4
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
xor ecx, esp
call fcn.016664c7
add esp, 0x90
ret 4