Function at 0x617c00
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a8
mov esi, esp
mov dword [esi + 0x190], ebp
mov ebx, ecx
mov dword [esi + 0x194], esp
mov dword [esi + 0x1a0], 0xffffffff
lea eax, [esi + 0x198]
mov dword [esi + 0x19c], 0x6221f0
mov ecx, dword fs:[0]
mov dword [esi + 0x198], ecx
mov dword fs:[0], eax
call fcn.006221d0
mov ecx, dword [0xb24bc4]
mov edi, dword [0xb24b88]
mov edx, 0x8078
sub edx, eax
mov dword [esi + 8], edx
sub edi, edx
add edi, ecx
mov ecx, edi
call dword [0xb0836c]
mov ecx, 0x28
call edi
movdqa xmm0, xmmword [0xaaca30]
movdqu xmmword [eax], xmm0
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
movaps xmm1, xmmword [0xaaca40]
movups xmmword [eax + 0x10], xmm1
mov dword [eax + 0x20], 0xffffffff
mov dword [eax + 0x24], 0
mov dword [esi + 0x30], ebx
mov dword [ebx], eax
movdqu xmmword [esi + 0x5c], xmm0
mov byte [esi + 0x68], 0
movups xmmword [esi + 0x6c], xmm1
mov dword [esi + 0x7c], 0xffffffff
mov dword [esi + 0x1a0], 7
lea ecx, [esi + 0xc0]
push 1
call fcn.005440b0
lea ecx, [esi + 0xd0]
movzx eax, byte [0xb24536]
cmp al, 0x12
je 0x617d3a
mov dl, 0xd7
nop dword [eax]
mov al, 0x9e
lock cmpxchg byte [0xb24536], dl
je 0x617d02
cmp al, 0x12
jne 0x617cf0
jmp 0x617d3a
movdqa xmm0, xmmword [0xb24530]
pxor xmm0, xmmword [0xaaca50]
movd dword [0xb24530], xmm0
xor byte [0xb24534], 0xb0
xor byte [0xb24535], 0xe
mov al, 0x12
xchg byte [0xb24536], al
mov dword [esi + 0x1a0], 0xd
mov dword [esi + 0x1a0], 0xd
push 0xb24530
push ecx
call fcn.005442b0
add esp, 8
movzx edx, word [ebp + 8]
mov ecx, eax
push edx
call fcn.00583470
mov ecx, eax
push dword [ebp + 0xc]
call fcn.005acab0
lea ecx, [esi + 0xd8]
lea eax, [esi + 0x94]
push eax
call fcn.0055d5e0
mov eax, dword [0xb24bd4]
mov edi, dword [0xb24b8c]
sub edi, dword [esi + 8]
add edi, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0xc0]
call edi
cmp dword [esi + 0xa8], 0x10
mov ecx, dword [esi + 0x94]
lea eax, [esi + 0x94]
cmovae eax, ecx
cmp byte [0xb532c2], 0
cmovne eax, ecx
mov dword [esi + 0x90], 0xb533e4
mov dword [esi + 0xc8], 0
mov byte [esi + 0xcc], 0
mov dword [esi + 0x1a0], 0xc
lea edx, [esi + 0x90]
lea ecx, [esi + 0xc0]
push edx
push 0xc0000000
push eax
push 2
call fcn.006193d0
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xc0], 0xffffffff
movzx edx, byte [esi + 0xcc]
mov byte [esi + 0xcc], 0
mov eax, dword [esi + 0x5c]
mov ebx, dword [esi + 0x64]
mov dword [esi + 0x5c], ecx
movq xmm0, qword [esi + 0xc4]
mov dword [esi + 0xc4], 0x80000000
mov dword [esi + 0xc8], 0
movq qword [esi + 0x60], xmm0
mov byte [esi + 0x68], dl
cmp eax, 0xffffffff
je 0x617e67
mov dword [esi + 0x1a0], 0
push eax
mov dword [esi], ebx
call sub.KERNEL32.dll_CloseHandle
mov ebx, dword [esi]
test ebx, ebx
je 0x617e91
mov eax, dword [0xb24bd0]
mov edi, dword [0xb24b9c]
sub edi, dword [esi + 8]
add edi, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
call edi
mov eax, dword [esi + 0xc0]
cmp eax, 0xffffffff
je 0x617eb6
mov dword [esi + 0x1a0], 1
push eax
call sub.KERNEL32.dll_CloseHandle
mov dword [esi + 0xc0], 0xffffffff
mov edi, dword [esi + 0xc8]
test edi, edi
je 0x617ee6
mov eax, dword [0xb24bd0]
mov ebx, dword [0xb24b9c]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x1a0], 8
push 0x84
push eax
call fcn.00620d40
add esp, 8
test al, al
je 0x61877d
sub esp, 0x1c
movdqa xmm0, xmmword [0xaaca60]
movdqu xmmword [esp + 4], xmm0
lea eax, [esi + 0x5c]
mov dword [esp], eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], 0
lea ecx, [esi + 0xc0]
mov dword [esi + 0x80], ecx
call fcn.00618f80
mov ecx, dword [esi + 0xc0]
mov ebx, dword [esi + 0xcc]
movq xmm0, qword [esi + 0xc4]
movaps xmm1, xmmword [0xaaca40]
movups xmmword [esi + 0xc0], xmm1
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x74]
mov dword [esi + 4], edx
mov dword [esi + 0x6c], ecx
mov edi, dword [esi + 0xd0]
mov dword [esi + 0xd0], 0xffffffff
movq qword [esi + 0x70], xmm0
mov dword [esi + 0x78], ebx
mov ecx, dword [esi + 0x7c]
mov dword [esi], ecx
mov ebx, dword [0xb24a74]
mov edx, dword [ebx]
cmp dword [0xb24a7c], 0x59810842
jne 0x617fc4
mov ecx, edx
sub ecx, ebx
mov dword [0xb24a7c], 0x5ac0c99a
imul ecx, ebx
shl edx, cl
xor ebx, ebx
test cl, 0x20
cmove ebx, edx
sub ecx, ebx
mov edx, ebx
sub edx, ecx
imul edx, ecx
add edx, ebx
mov dword [esi + 0x28], edx
mov ecx, dword [0xaaceec]
mov dword [esi + 0x38], ecx
mov edx, dword [0xb24a78]
xor ecx, ecx
cmp dword [0xb24a80], 0x3214f264
sete cl
add edx, dword [edx + ecx*4]
mov dword [esi + 0x34], edx
mov dword [esi + 0x7c], edi
test eax, eax
je 0x618007
sub eax, dword [esi + 4]
mov dword [esi + 0x1a0], 2
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
cmp dword [esi], 0xffffffff
je 0x61801d
mov dword [esi + 0x1a0], 2
push dword [esi]
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x618047
sub eax, dword [esi + 0xc8]
mov dword [esi + 0x1a0], 3
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
mov dword [esi + 0xc0], 0
mov eax, dword [esi + 0xd0]
cmp eax, 0xffffffff
je 0x618062
mov dword [esi + 0x1a0], 3
push eax
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x84], eax
and eax, 0xfffffffc
cmp eax, 0x7ffffffc
je 0x6187df
mov eax, dword [esi + 0x6c]
mov ecx, dword [0xb24a48]
lea edx, [ecx + 1]
mov dword [0xb24a48], edx
mov dword [esi + 0xb0], ecx
mov dword [esi + 0xac], edx
test edx, ecx
mov dword [esi + 0xb4], eax
je 0x618155
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
cmp dword [0xb24a88], 0xaa6f15d3
jne 0x6180da
mov dword [0xb24a80], 0x167231c4
mov eax, dword [esi + 0x94]
mov dword [esi], eax
mov ebx, dword [esi + 0xa8]
mov dword [esi + 0xd0], 0
mov dword [esi + 0xd4], 0
mov eax, dword [esi + 0x84]
lea ecx, [eax + 4]
mov edx, 0xf
lea edi, [esi + 0xc0]
cmp ecx, 0xf
lea eax, [esi + 0x94]
jbe 0x618415
mov dword [esi + 0x10], ecx
mov eax, ecx
or eax, 0xf
js 0x618179
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
lea ecx, [edx + 1]
mov dword [esi + 0x1a0], 8
cmp edx, 0xfff
mov dword [esi + 0xc], edx
jb 0x6183f6
mov dword [esi + 4], ebx
jmp 0x618188
cmp dword [0xb24a84], 0x3f9ce4ee
jne 0x6181b2
mov ecx, dword [esi + 0x34]
lea edx, [ecx + 0x18]
add edx, dword [ecx + 0x18]
mov dword [esi + 0x3c], edx
mov dword [0xb24a8c], 0x4f14185
jmp 0x6181bc
mov dword [esi + 4], ebx
mov dword [esi + 0xc], 0x7fffffff
mov ecx, 0x80000000
add ecx, 0x23
mov dword [esi + 0x1a0], 8
call fcn.0053d610
mov ecx, eax
xor ecx, 0x22
mov edx, eax
and edx, 0x23
lea edi, [ecx + edx*2]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x618400
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx]
add edx, ecx
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0x28]
cmp dword [esi + 0x38], 0
jle 0x6180a8
xor edi, edi
mov eax, dword [0xb24a88]
mov dword [esi + 0xbc], eax
pcmpeqd xmm0, xmm0
xorps xmm1, xmm1
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], 0
jmp 0x6182de
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1c]
sbb eax, dword [esi]
mov dword [esi + 0x40], eax
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
sbb ebx, eax
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x2c]
sbb edx, ecx
mov dword [esi + 0xb8], edx
mul dword [esi + 0xc]
mov dword [esi + 0x24], eax
imul ecx, dword [esi + 0xc]
add ecx, edx
mov eax, dword [esi + 0x10]
imul eax, dword [esi + 0x40]
add ecx, eax
mov eax, dword [esi + 4]
mul ebx
imul ebx, dword [esi]
add ebx, edx
mov edx, dword [esi + 0xb8]
imul edx, dword [esi + 4]
add ebx, edx
add eax, dword [esi + 0x24]
mov dword [esi + 0x2c], eax
adc ebx, ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mul ecx
mov dword [esi + 0x24], edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x40]
mul ecx
mov ecx, eax
add ecx, dword [esi + 0x24]
adc edx, 0
mov dword [esi + 0x24], edx
mov eax, dword [esi + 0xc]
mul dword [esi]
add eax, ecx
mov dword [esi + 4], eax
adc edx, dword [esi + 0x24]
mov ecx, edx
setb byte [esi + 0xc]
mov eax, dword [esi + 0x40]
mul dword [esi]
add eax, ecx
movzx ecx, byte [esi + 0xc]
adc edx, ecx
add eax, dword [esi + 0x2c]
adc edx, ebx
xor dword [esi + 0x14], edx
xor dword [esi + 0x18], eax
mov eax, dword [esi + 4]
xor dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
xor dword [esi + 0x20], eax
xor edi, 0x10
cmp edi, dword [esi + 0x38]
mov edx, dword [esi + 0x28]
ja 0x6180c4
lea ecx, [edx + edi]
mov eax, dword [esi + 0x3c]
sub eax, ecx
mov ecx, dword [esi + 0x8c]
sbb ecx, 0
cmp eax, 0x10
sbb ecx, 0
mov ebx, dword [edx + edi + 0xc]
mov ecx, dword [edx + edi + 8]
mov dword [esi + 0x10], ecx
mov ecx, dword [edx + edi]
mov dword [esi + 4], ecx
mov ecx, dword [edx + edi + 4]
mov dword [esi], ecx
jge 0x6183b0
lea ecx, [eax*8]
movdqu xmmword [esi + 0x180], xmm0
movups xmmword [esi + 0x170], xmm1
shr cl, 3
and cl, 0xf
neg cl
movsx ecx, cl
mov edx, dword [esi + ecx + 0x18c]
not edx
and ebx, edx
mov dword [esi + 0x2c], ebx
mov edx, dword [esi + ecx + 0x188]
not edx
and dword [esi + 0x10], edx
mov edx, dword [esi + ecx + 0x184]
not edx
and dword [esi], edx
mov ecx, dword [esi + ecx + 0x180]
not ecx
and dword [esi + 4], ecx
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x88]
lea ebx, [ecx + edx*4]
add ebx, 4
add ebx, dword [ecx + edx*4 + 4]
mov dword [esi + 0x3c], ebx
lea ecx, [edx + 1]
add edi, eax
add edi, 0xfffffff4
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], ecx
cmp dword [esi + 0xbc], 0x7f7ed83c
je 0x618220
jmp 0x6183c3
mov dword [esi + 0x2c], ebx
cmp dword [esi + 0xbc], 0x7f7ed83c
je 0x618220
mov eax, edi
xor eax, 0x10
and edi, 0x10
lea edi, [eax + edi*2]
mov eax, dword [esi + 4]
xor dword [esi + 0x20], eax
mov eax, dword [esi]
xor dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
xor dword [esi + 0x18], eax
mov eax, dword [esi + 0x2c]
xor dword [esi + 0x14], eax
cmp edi, dword [esi + 0x38]
mov edx, dword [esi + 0x28]
jl 0x6182de
jmp 0x6180c4
mov dword [esi + 4], ebx
call fcn.0053d610
mov edi, eax
lea eax, [esi + 0x94]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xc0], edi
mov edx, dword [esi + 0xc]
cmp ebx, 0x10
cmovae eax, dword [esi]
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edx
mov ebx, dword [esi + 0x84]
push ebx
push eax
push edi
call fcn.0077cce0
add esp, 0xc
mov dword [edi + ebx], 0x6b636c5f
mov byte [edi + ebx + 4], 0
cmp dword [esi + 0xd4], 0x10
jb 0x618459
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x44], eax
movdqa xmm0, xmmword [0xaaca40]
movdqu xmmword [esi + 0x48], xmm0
mov dword [esi + 0x58], 0xffffffff
mov dword [esi + 0x1a0], 0xb
lea edx, [esi + 0x44]
lea ecx, [esi + 0x48]
push 1
push 2
lea eax, [esi + 0x90]
push eax
push 0
push 0xc0000000
push 0xc
push edx
push 2
call fcn.00620e50
mov dword [esi + 0x1a0], 0xa
lea ecx, [esi + 0x48]
call fcn.00621e20
test al, al
mov edi, dword [esi + 0xb4]
mov edx, dword [esi + 0x20]
je 0x6187ee
mov eax, dword [esi + 0xac]
test dword [esi + 0xb0], eax
sete byte [esi + 4]
mov eax, dword [edi]
mov dword [esi], eax
xor edx, dword [0xaacde8]
mov eax, dword [esi + 0x18]
xor eax, dword [0xaacdf0]
mov ebx, dword [esi + 0x1c]
xor ebx, dword [0xaacdec]
mov ecx, dword [esi + 0x14]
xor ecx, dword [0xaacdf4]
or eax, edx
or ecx, ebx
or ecx, eax
setne dl
and dl, byte [esi + 4]
movzx ecx, byte [0xb532c2]
cmp dword [0xb24a88], 0x1f8c04e7
jne 0x61852a
mov ch, cl
xor ch, 1
and dl, ch
mov dword [0xb24a84], 0x9df52f82
or cl, dl
and cl, 1
mov byte [0xb532c2], cl
cmp dword [esi], 0
jne 0x618574
pxor xmm0, xmm0
movdqu xmmword [edi + 0x74], xmm0
movdqu xmmword [edi + 0x64], xmm0
movdqu xmmword [edi + 0x54], xmm0
movdqu xmmword [edi + 0x44], xmm0
movdqu xmmword [edi + 0x34], xmm0
movdqu xmmword [edi + 0x24], xmm0
movdqu xmmword [edi + 0x14], xmm0
movdqu xmmword [edi + 4], xmm0
mov dword [edi], 1
mov eax, 1
xchg dword [edi + 4], eax
mov eax, dword [esi + 0x48]
lock inc dword [eax + 8]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x61859c
sub eax, dword [esi + 0x50]
mov dword [esi + 0x1a0], 4
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x58]
cmp eax, 0xffffffff
je 0x6185b4
mov dword [esi + 0x1a0], 4
push eax
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 0xd4]
cmp eax, 0x10
jb 0x61862e
mov edi, dword [esi + 0xc0]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x6185fc
mov ecx, dword [edi - 4]
mov edx, edi
xor edx, 0xfffffffc
and edi, 0xfffffffc
lea edx, [edx + edi*2]
sub edx, ecx
cmp edx, 0x20
jae 0x618806
add eax, 0x24
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi], eax
mov edi, ecx
jmp 0x6185fe
mov dword [esi], ecx
mov eax, dword [0xb24bc0]
mov ebx, dword [0xb24b94]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi]
push 0x52c73f71
call ebx
add esp, 4
mov eax, dword [esi + 0xa8]
cmp eax, 0x10
jb 0x6186a0
mov edi, dword [esi + 0x94]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x61866e
mov ecx, dword [edi - 4]
add edi, 0xfffffffc
sub edi, ecx
cmp edi, 0x20
jae 0x618815
add eax, 0x24
mov dword [esi + 0x1a0], 0xffffffff
mov dword [esi], eax
mov edi, ecx
jmp 0x618670
mov dword [esi], ecx
mov eax, dword [0xb24bc0]
mov ebx, dword [0xb24b94]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi]
push 0x52c73f71
call ebx
add esp, 4
mov eax, dword [esi + 0x30]
mov edi, dword [eax]
mov eax, dword [0xb24bcc]
mov ebx, dword [0xb24b98]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
lea eax, [esi + 0x5c]
push eax
call ebx
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x6186f0
sub eax, dword [esi + 0x74]
mov dword [esi + 0x1a0], 0xe
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0x7c]
cmp eax, 0xffffffff
je 0x61870f
mov dword [esi + 0x1a0], 0xe
push eax
call sub.KERNEL32.dll_CloseHandle
mov dword [esi + 0x7c], 0xffffffff
mov eax, dword [esi + 0x5c]
cmp eax, 0xffffffff
je 0x61872e
mov dword [esi + 0x1a0], 0xf
push eax
call sub.KERNEL32.dll_CloseHandle
mov dword [esi + 0x5c], 0xffffffff
mov edi, dword [esi + 0x64]
test edi, edi
je 0x61875b
mov eax, dword [0xb24bd0]
mov ebx, dword [0xb24b9c]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x1a0], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
mov eax, dword [esi + 0x30]
mov edx, dword [eax]
mov ecx, dword [edx + 0x10]
mov dword [edx + 0x24], ecx
mov ecx, dword [esi + 0x198]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
call sub.KERNEL32.dll_GetLastError
mov edi, eax
mov dword [esi + 0x48], eax
mov eax, dword [0xb24bbc]
mov ecx, dword [0xb24b84]
sub ecx, dword [esi + 8]
add ecx, eax
mov dword [esi + 0x1a0], 0xffffffff
call dword [0xb0836c]
push edi
call ecx
add esp, 4
mov dword [esi + 0x4c], eax
mov dword [esi + 0x1a0], 8
lea eax, [esi + 0x48]
lea ecx, [esi + 0xc0]
push 0
push eax
call fcn.006196f0
push 0xafd5b8
lea eax, [esi + 0xc0]
push eax
call fcn.0077d4eb
add esp, 8
mov dword [esi + 0x1a0], 8
call fcn.0052b450
mov dword [esi + 0x44], 0xffffffff
push 0xafd124
lea eax, [esi + 0x44]
push eax
call fcn.0077d4eb
add esp, 8
mov dword [esi + 0x1a0], 5
call fcn.00748ef1
mov dword [esi + 0x1a0], 6
call fcn.00748ef1
nop word cs:[eax + eax]
push ebp
sub esp, 0x20
lea esi, [ebp - 0x1a4]
mov ebp, dword [esi + 0x190]
mov edi, dword [esi + 0xc8]
test edi, edi
je 0x618866
mov eax, dword [0xb24bd0]
mov ebx, dword [0xb24b9c]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
call ebx
add esp, 0x20
pop ebp
ret