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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov edi, dword [0xb1215c]
add edi, dword [edi]
add edi, dword [0xb53274]
mov ebx, dword [0xaa93ac]
mov ebp, dword [0xb12160]
add ebp, dword [ebp]
mov eax, dword [0xb12158]
lea esi, [eax + 1]
mov dword [0xb12158], esi
mov edx, 0xfffffffe
sub edx, eax
xor esi, eax
not eax
and edx, eax
or esi, edx
cmp esi, 0xffffffff
je 0x5633d9
xor ebp, ebp
mov dword [esp], 0
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp + 8], 0
jmp 0x5636e3
mov esi, ecx
mov dword [esp + 0x3c], edi
mov edx, ebp
mov ebp, 0xffffffff
xor ecx, ecx
cmp dword [0xb12164], 0xe975c1e0
sete cl
shl ecx, 4
mov eax, dword [edx + ecx]
test ebx, ebx
jle 0x5636c8
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edx
add ecx, edx
add ecx, eax
xor edx, edx
mov eax, dword [0xb12168]
mov dword [esp + 0x34], eax
xorps xmm0, xmm0
xor ebp, ebp
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
xor edi, edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov eax, ecx
mov dword [esp + 0x38], ebx
jmp 0x563479
xor ebp, ebx
xor ecx, dword [esp + 0x10]
mov dword [esp + 4], ecx
xor eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
xor edi, dword [esp + 0x18]
add edx, 0x10
mov ebx, dword [esp + 0x38]
cmp edx, ebx
mov eax, dword [esp + 0x28]
jge 0x5636b2
mov dword [esp], ebp
mov dword [esp + 8], edi
mov esi, dword [esp + 0x3c]
lea ecx, [esi + edx]
mov dword [esp + 0x28], eax
sub eax, ecx
mov ecx, dword [esp + 0x24]
sbb ecx, 0
cmp eax, 0x10
sbb ecx, 0
mov edi, dword [esi + edx + 0xc]
mov ebp, dword [esi + edx + 8]
mov ebx, dword [esi + edx]
mov esi, dword [esi + edx + 4]
jge 0x563550
lea ecx, [eax*8]
mov dword [esp + 0x1c], edx
mov edx, 0xffffffff
mov dword [esp + 0x70], edx
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
shr cl, 3
and cl, 0xf
neg cl
movsx ecx, cl
mov edx, dword [esp + ecx + 0x7c]
not edx
and edi, edx
mov dword [esp + 0x18], edi
mov edx, dword [esp + ecx + 0x78]
not edx
and ebp, edx
mov dword [esp + 0x14], ebp
mov edx, dword [esp + ecx + 0x74]
not edx
and esi, edx
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx + 0x70]
not ecx
and ebx, ecx
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
lea ebp, [ecx + esi*4]
add ebp, 4
add ebp, dword [ecx + esi*4 + 4]
mov dword [esp + 0x28], ebp
lea ecx, [esi + 1]
mov ebp, dword [esp]
mov edi, dword [esp + 8]
add edx, eax
add edx, 0xfffffff4
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ecx
jmp 0x563563
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], esi
mov edi, dword [esp + 8]
mov ebp, dword [esp]
cmp dword [esp + 0x34], 0xa73fd3a9
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0xc]
jne 0x563450
sub ebp, ebx
sbb ecx, dword [esp + 0x10]
mov dword [esp + 4], ecx
mov ecx, ebp
mov dword [esp], ebp
mov ebp, dword [esp + 0x14]
sbb eax, ebp
mov esi, dword [esp + 0x18]
sbb edi, esi
mov dword [esp + 8], edi
mov edi, eax
mov eax, ebp
mov dword [esp + 0x1c], edx
mul ecx
mov dword [esp + 0xc], eax
imul esi, ecx
add esi, edx
imul ebp, dword [esp + 4]
add esi, ebp
mov eax, ebx
mul edi
imul edi, dword [esp + 0x10]
add edi, edx
mov ecx, dword [esp + 8]
imul ecx, ebx
add edi, ecx
add eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
adc edi, esi
mov eax, dword [esp]
mul ebx
mov esi, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mul ebx
mov ebp, edx
mov ecx, eax
add ecx, esi
adc ebp, 0
mov eax, dword [esp]
mul dword [esp + 0x10]
mov esi, edx
add eax, ecx
mov dword [esp], eax
adc esi, ebp
setb cl
mov eax, dword [esp + 4]
mul dword [esp + 0x10]
add eax, esi
movzx ecx, cl
adc edx, ecx
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
adc edx, edi
movups xmmword [esp + 0x40], xmm0
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov ch, bl
and ch, 7
shr bl, 3
and bl, 0xf
neg bl
movsx eax, bl
mov esi, dword [esp + eax + 0x58]
mov dword [esp + 4], esi
mov cl, ch
shl esi, cl
not cl
mov edi, dword [esp + eax + 0x54]
mov ebx, edi
shr ebx, 1
shr ebx, cl
or ebx, esi
mov esi, dword [esp + eax + 0x5c]
mov cl, ch
mov ebp, dword [esp + 4]
shld esi, ebp, cl
xor esi, edx
mov edx, dword [esp + eax + 0x50]
mov ebp, edx
shl ebp, cl
shld edi, edx, cl
xor ebx, dword [esp + 0x10]
mov dword [esp + 0xc], ebx
xor edi, dword [esp]
mov dword [esp + 4], edi
mov edi, esi
xor ebp, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
imul eax, ecx, 0xb88f72bc
sub eax, ecx
imul edx, eax, 0xd4b48d44
mov dword [0xb12178], 0xe14de0cd
add edx, 0x87127788
jmp 0x563469
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
mov dword [esp], ebp
mov ebp, 0xffffffff
jmp 0x5636e3
mov dword [esp], 0
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp + 8], 0
mov ecx, esi
mov esi, dword [ecx + 8]
call sub.KERNEL32.dll_GetCurrentThreadId
cmp esi, eax
sete al
mov ecx, dword [0xaa93a4]
mov edx, dword [0xaa93a0]
mov esi, dword [0xaa939c]
mov ebx, dword [0xaa9398]
sub ebx, dword [esp]
sbb esi, dword [esp + 4]
sbb edx, edi
sbb ecx, dword [esp + 8]
and esi, ebp
and ecx, ebp
or ecx, esi
and ebx, ebp
and edx, ebp
or edx, ebx
or edx, ecx
setne cl
or cl, byte [0xb53278]
or cl, byte [0xb53271]
and cl, 1
mov byte [0xb53271], cl
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x563370