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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x278
mov esi, esp
mov dword [esi + 0x260], ebp
mov ebx, ecx
mov edi, dword [ebp + 8]
mov dword [esi + 0x264], esp
mov dword [esi + 0x270], 0xffffffff
lea eax, [esi + 0x268]
mov dword [esi + 0x26c], 0x55e140
mov ecx, dword fs:[0]
mov dword [esi + 0x268], ecx
mov dword fs:[0], eax
call fcn.0055da30
mov ecx, eax
mov byte [edi], 0
mov edx, dword [ebx + 0xc4]
mov al, 1
test dl, 2
jne 0x543d30
mov dword [esi + 8], ecx
mov eax, edx
or eax, 2
mov dword [ebx + 0xc4], eax
mov edi, dword [ebx + 0xb8]
mov eax, dword [ebx + 0x144]
mov dword [esi + 0xc], ebx
lea ebx, [eax + 0xcb]
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x144], ebx
mov ebx, dword [esi + 0xc]
cmp dword [edi + 4], 0
je 0x5429a6
add eax, 0xcc
mov dword [ebx + 0x144], eax
mov dword [esi + 0x60], 0xaa8ee8
mov dword [esi + 0x64], 0
mov word [esi + 0x68], 0
xorps xmm0, xmm0
movups xmmword [esi + 0x6c], xmm0
mov dword [esi + 0x7c], 0
mov ecx, dword [ebx + 0x108]
mov eax, dword [ebx + 0x120]
mov dword [esi + 4], eax
mov edx, 0xffff6840
sub edx, dword [esi + 8]
mov eax, dword [ebx + 0x114]
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0x110]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0xc0]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 0xb4]
mov dword [esi + 0x4c], eax
mov eax, dword [ebx + 0xbc]
mov dword [esi + 0x48], eax
mov eax, dword [0xb0e9e4]
mov edi, dword [0xb0e9d8]
mov dword [esi + 8], edx
sub edi, edx
add edi, eax
mov ebx, ecx
shr ebx, 0xe
and ebx, 1
shr ecx, 0x1c
and ecx, 1
mov dword [esi + 0x14], ecx
mov ecx, edi
call dword [0xb0836c]
lea eax, [esi + 0x60]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x48]
push 0x897b3314
push eax
push ebx
push dword [esi + 0x14]
push dword [esi + 4]
push dword [esi + 0x28]
push dword [esi + 0x18]
push dword [esi + 0x1c]
call edi
add esp, 0x20
test eax, eax
je 0x5429ba
mov eax, dword [esi + 0xc]
and byte [eax + 0xc4], 0xfd
jmp 0x543d2e
sub edx, dword [0xb5324c]
and edx, 0xfffffffd
mov dword [ebx + 0xc4], edx
jmp 0x543d2e
cmp byte [esi + 0x66], 0
movzx eax, byte [esi + 0x67]
movzx ecx, byte [esi + 0x68]
mov edx, dword [esi + 0xc]
jne 0x5429d3
test al, al
jne 0x5429d3
test cl, cl
je 0x5429da
or byte [edx + 0x10a], 0x20
mov byte [esi + 0x18], cl
mov byte [esi + 0x1c], al
mov eax, dword [edx + 0x144]
mov dword [esi + 4], eax
lea ecx, [eax + 1]
mov dword [edx + 0x144], ecx
movzx eax, byte [esi + 0x64]
mov ah, byte [0xb53254]
cmp dword [0xb0df24], 0x38a77cd6
mov edx, dword [0xb0df2c]
jne 0x542a3c
mov ebx, dword [edx + 4]
sub ebx, edx
imul ebx, edx
mov edi, ebx
mov ecx, edx
shl edi, cl
mov ecx, edx
xor edx, edx
test cl, 0x20
cmove edx, edi
add edx, ebx
mov ecx, dword [0xaa918c]
mov dword [esi + 0x48], ecx
mov edi, dword [0xb0df30]
lea ebx, [edi + 0xc]
jmp 0x542a4f
add edx, dword [edx]
mov ecx, dword [0xaa918c]
mov dword [esi + 0x48], ecx
mov ebx, dword [0xb0df30]
mov edi, ebx
mov dword [esi + 0x4c], edx
test al, al
sete cl
add edi, dword [ebx]
or ah, cl
test ah, 1
je 0x542b71
mov eax, dword [esi + 4]
add eax, 2
mov ebx, dword [esi + 0xc]
mov dword [ebx + 0x144], eax
and byte [ebx + 0x109], 0xbf
mov dword [esi + 0x84], edi
inc dword [ebx + 0x144]
mov edi, dword [ebx + 0x108]
mov eax, edi
and eax, 0xf7ffffff
mov dword [ebx + 0x108], eax
mov eax, dword [esi + 0x70]
mov ebx, 0xc22e4507
mov dword [esi + 0x18], eax
imul ebx
mov dword [esi + 0x1c], edx
mov ecx, dword [esi + 0x74]
mov eax, ecx
imul ebx
mov ebx, dword [esi + 0xc]
add edx, ecx
mov eax, edx
shr eax, 0x1f
sar edx, 0x10
add edx, eax
mov dword [esi + 4], edx
cmp byte [esi + 0x64], 0
je 0x542f82
test edi, 0x100000
je 0x542f82
cmp byte [esi + 0x68], 0
je 0x542f82
cmp byte [esi + 0x69], 0
jne 0x542f82
mov eax, dword [esi + 4]
mov dword [esi + 0xd4], eax
movzx eax, word [0xb5302e]
mov dword [esi + 0x28], eax
mov ebx, dword [ebx + 0x138]
mov eax, dword [0xb0e9ec]
mov edi, dword [0xb0e9bc]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 0x28]
call edi
mov edi, eax
mov eax, dword [0xb0ea08]
mov ebx, dword [0xb0e9d4]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
lea ecx, [esi + 0x170]
push edi
call ebx
movzx eax, byte [0xb0dd48]
cmp al, 0x9e
je 0x542ec5
mov cl, 0xe0
mov al, 0x41
lock cmpxchg byte [0xb0dd48], cl
je 0x542e9d
cmp al, 0x9e
jne 0x542b58
jmp 0x542ec5
mov ebx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x108]
test ecx, 0x4000
je 0x542c50
cmp byte [esi + 0x65], 0
je 0x542c50
movzx eax, word [0xb52ff4]
mov dword [esi + 4], eax
mov ebx, dword [ebx + 0x138]
mov eax, dword [0xb0e9ec]
mov edi, dword [0xb0e9bc]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 4]
call edi
test eax, eax
mov ebx, 0x79a634
cmovne ebx, eax
mov dword [esi + 0x184], 0
mov dword [esi + 0x188], 0xf
mov byte [esi + 0x174], 0
mov eax, dword [0xb0e9f0]
mov edi, dword [0xb0e9b0]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov dword [esi + 4], ebx
mov ecx, ebx
mov edx, 0x6e4fe09e
call edi
mov ebx, eax
cmp eax, 0xf
jbe 0x542db6
mov eax, dword [0xb0e9fc]
mov edi, dword [0xb0e9c8]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
sub esp, 0xc
movzx eax, byte [esi + 0x88]
mov byte [esp + 4], al
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp], ebx
lea ecx, [esi + 0x174]
call edi
jmp 0x542dd7
mov eax, dword [esi + 4]
add eax, 2
mov dword [ebx + 0x144], eax
mov edx, ecx
and edx, 0xffffbfff
mov dword [ebx + 0x108], edx
movzx eax, byte [esi + 0x18]
or byte [esi + 0x1c], al
sete al
test ecx, 0x8000000
je 0x542a7a
test al, al
jne 0x542a7a
mov eax, dword [0xb0e9e0]
mov ebx, dword [0xb0e9cc]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
lea ecx, [esi + 0x170]
mov edx, 0x599a08a3
call ebx
mov ebx, dword [esi + 0xc]
mov eax, 0x88888889
mul dword [esi + 0x170]
shr edx, 5
sub edx, dword [esi + 0x7c]
mov dword [esi + 0x88], edx
mov eax, dword [ebx + 0x118]
cmp eax, 0xffffffff
je 0x542cd8
neg eax
cmp edx, eax
jl 0x542cef
mov eax, dword [ebx + 0x11c]
cmp eax, 0xffffffff
je 0x542a7a
cmp edx, eax
jle 0x542a7a
movzx eax, word [0xb52ff6]
mov dword [esi + 4], eax
mov edi, dword [ebx + 0x138]
mov eax, dword [0xb0e9ec]
mov ebx, dword [0xb0e9bc]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi + 4]
call ebx
mov ebx, eax
mov eax, dword [0xb0ea08]
mov edi, dword [0xb0e9d4]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
push ebx
call edi
mov eax, 0x330
mov ecx, dword [esi + 0xc]
add eax, dword [ecx + 0xb4]
mov edx, dword [ecx + 0xbc]
mov dword [esi + 0x270], 2
lea edi, [esi + 0x88]
lea ecx, [esi + 0xd4]
push 0
push 1
push edi
push 0x186a9
lea edi, [esi + 0x170]
push edi
push eax
push 4
call fcn.0055d720
add esp, 0x1c
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, dword [esi + 8]
add edi, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
jmp 0x543d28
mov dword [esi + 0x184], ebx
push ebx
push dword [esi + 4]
lea eax, [esi + 0x174]
push eax
call fcn.0077cce0
add esp, 0xc
mov byte [esi + ebx + 0x174], 0
mov dword [esi + 0x170], 0x799e70
mov eax, 0x330
mov ecx, dword [esi + 0xc]
add eax, dword [ecx + 0xb4]
mov edx, dword [ecx + 0xbc]
mov dword [esi + 0x270], 1
sub esp, 0x1c
movaps xmm0, xmmword [0xaa8cd0]
movups xmmword [esp + 0xc], xmm0
lea ecx, [esi + 0x170]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 4
lea ecx, [esi + 0x88]
call fcn.0055d720
add esp, 0x1c
mov eax, dword [esi + 0x188]
cmp eax, 0x10
jb 0x543d28
mov edi, dword [esi + 0x174]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x542e6c
mov ecx, dword [edi - 4]
add edi, 0xfffffffc
sub edi, ecx
cmp edi, 0x20
jae 0x543d73
add eax, 0x24
mov dword [esi + 0xc], eax
mov edi, ecx
jmp 0x542e6f
mov dword [esi + 0xc], ecx
mov eax, dword [0xb0e9f8]
mov ebx, dword [0xb0e9c4]
sub ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi + 0xc]
call ebx
jmp 0x543d28
movsd xmm0, qword [0xb0dd40]
xorps xmm0, xmmword [0xaa8ce0]
movlps qword [0xb0dd40], xmm0
mov al, 0x9e
xchg byte [0xb0dd48], al
mov dword [esi + 0x270], 3
mov dword [esi + 0x270], 3
lea ecx, [esi + 0x88]
push 0xb0dd40
call fcn.00540910
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0xbc]
mov dword [esi + 0x270], 4
lea eax, [esi + 0xd4]
lea ecx, [esi + 0xbc]
push 0
push 3
push eax
push 0x186a8
lea eax, [esi + 0x170]
push eax
lea eax, [esi + 0x88]
push eax
push 2
call fcn.0055d720
add esp, 0x1c
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
mov ebx, dword [esi + 8]
sub edi, ebx
add edi, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x88]
call edi
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
cmp dword [esi + 0xbc], 2
je 0x543d28
mov ebx, dword [esi + 0xc]
or byte [ebx + 0xc5], 8
add dword [ebx + 0x144], 0xffffff31
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x543120
cmp byte [esi + 0x66], 0
je 0x543120
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x543120
cmp ecx, eax
jae 0x543120
test byte [ebx + 0xc5], 4
jne 0x543120
mov dword [esi + 0xd4], ecx
movzx eax, word [0xb53028]
mov dword [esi + 0x28], eax
mov ebx, dword [ebx + 0x138]
mov eax, dword [0xb0e9ec]
mov edi, dword [0xb0e9bc]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 0x28]
call edi
mov edi, eax
mov eax, dword [0xb0ea08]
mov ebx, dword [0xb0e9d4]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
lea ecx, [esi + 0x170]
push edi
call ebx
movzx eax, byte [0xb0dd48]
cmp al, 0x9e
je 0x543063
mov cl, 0xe0
mov al, 0x41
lock cmpxchg byte [0xb0dd48], cl
je 0x54303b
cmp al, 0x9e
jne 0x543029
jmp 0x543063
movsd xmm0, qword [0xb0dd40]
xorps xmm0, xmmword [0xaa8ce0]
movlps qword [0xb0dd40], xmm0
mov al, 0x9e
xchg byte [0xb0dd48], al
mov dword [esi + 0x270], 5
mov dword [esi + 0x270], 5
lea ecx, [esi + 0x88]
push 0xb0dd40
call fcn.00540910
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0xbc]
mov dword [esi + 0x270], 6
lea eax, [esi + 0xd4]
lea ecx, [esi + 0xbc]
push 0
push 3
push eax
push 0x186a2
lea eax, [esi + 0x170]
push eax
lea eax, [esi + 0x88]
push eax
push 2
call fcn.0055d720
add esp, 0x1c
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
mov ebx, dword [esi + 8]
sub edi, ebx
add edi, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x88]
call edi
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
cmp dword [esi + 0xbc], 2
je 0x543d28
mov eax, dword [esi + 0xc]
or byte [eax + 0xc5], 4
mov edi, dword [esi + 0x1c]
add edi, dword [esi + 0x18]
mov eax, edi
shr eax, 0x1f
sar edi, 0x10
add edi, eax
xor eax, eax
cmp byte [esi + 0x67], 0
je 0x54314f
cmp dword [esi + 0x70], 0
mov ebx, dword [esi + 8]
js 0x543152
mov eax, dword [esi + 0xc]
cmp edi, dword [eax + 0x130]
setle al
jmp 0x543152
mov ebx, dword [esi + 8]
xor ecx, ecx
cmp byte [esi + 0x68], 0
je 0x543175
cmp dword [esi + 0x74], 0
js 0x543175
mov ecx, dword [0xb53250]
mov edx, dword [esi + 0xc]
add ecx, dword [edx + 0x130]
cmp dword [esi + 4], ecx
setle cl
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x130], 0
je 0x543ba0
mov edx, eax
or dl, cl
je 0x543ba0
mov edx, dword [esi + 0xc]
test byte [edx + 0xc5], 2
jne 0x543ba0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov edx, eax
and dl, cl
cmp dl, 1
jne 0x5431c9
mov eax, dword [esi + 4]
cmp edi, eax
cmovl eax, edi
mov dword [esi + 0x50], eax
sar eax, 0x1f
mov dword [esi + 0x54], eax
jmp 0x5431e1
test al, al
je 0x5431d8
mov dword [esi + 0x50], edi
sar edi, 0x1f
mov dword [esi + 0x54], edi
jmp 0x5431e1
test cl, cl
je 0x5431e1
mov eax, dword [esi + 4]
jmp 0x5431be
mov eax, dword [0xb0ea00]
mov edi, dword [0xb0e9d0]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
push 1
call edi
movzx edx, word [0xb5302a]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x138]
mov dword [esi + 0x270], 7
call fcn.0053ed50
mov dword [esi + 0xa8], eax
cmp dword [0xb0df34], 0x24cf8ae0
mov ebx, dword [0xb0df10]
mov edi, dword [esi + 0x84]
jne 0x543253
lea eax, [ebx + ebx*2]
lea ecx, [ebx + ebx]
neg ecx
xor ecx, ebx
mov ebx, eax
sub ebx, ecx
sub ebx, ecx
and ebx, ecx
jmp 0x543258
lea eax, [ebx + 1]
and ebx, eax
mov ecx, dword [esi + 0x4c]
mov dword [0xb0df10], eax
test ebx, ebx
mov dword [esi + 0xa4], ebx
je 0x54337b
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
cmp dword [0xb0df24], 0xf21f0db0
sete byte [esi + 4]
mov dword [esi + 0x270], 7
push dword [esi + 0xa8]
lea eax, [esi + 0x180]
push eax
call fcn.005442b0
add esp, 8
lea ecx, [esi + 0x180]
push dword [esi + 0x54]
push dword [esi + 0x50]
call fcn.00544870
xor eax, eax
movzx ecx, byte [esi + 4]
mov al, cl
add eax, eax
imul eax, eax, 0xb0
lea ecx, [esi + eax]
add ecx, 0x188
lea eax, [esi + 0xbc]
push eax
call fcn.0055d5e0
cmp dword [esi + 0xa4], 0
sete al
mov ecx, dword [esi + 0x44]
xor ecx, dword [0xaa9300]
mov edx, dword [esi + 0x3c]
xor edx, dword [0xaa9308]
or edx, ecx
mov ecx, dword [esi + 0x40]
xor ecx, dword [0xaa9304]
mov edi, dword [esi + 0x38]
xor edi, dword [0xaa930c]
or edi, ecx
or edi, edx
setne cl
and cl, al
or cl, byte [0xb53254]
and cl, 1
mov byte [0xb53254], cl
mov dword [esi + 0x270], 8
lea ecx, [esi + 0x88]
lea eax, [esi + 0xbc]
push eax
call fcn.00544d00
movzx eax, byte [0xb0dd48]
cmp al, 0x9e
je 0x543a82
mov cl, 0xe0
mov al, 0x41
lock cmpxchg byte [0xb0dd48], cl
je 0x543a5a
cmp al, 0x9e
jne 0x543362
jmp 0x543a82
mov edx, dword [edi]
cmp dword [esi + 0x48], 0
jle 0x54326e
add edx, edi
xor ebx, ebx
mov eax, dword [0xb0df24]
mov dword [esi + 0xb4], eax
mov eax, dword [0xb0df28]
mov dword [esi + 0xb0], eax
lea eax, [edi + 4]
mov dword [esi + 0xac], eax
movaps xmm0, xmmword [0x7995a0]
xorps xmm1, xmm1
pcmpeqd xmm2, xmm2
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
jmp 0x5434d3
mov eax, dword [esi + 0x44]
mov dword [esi + 0x100], eax
movups xmmword [esi + 0xf0], xmm1
mov eax, dword [esi + 0x40]
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x10c], eax
mov ecx, dword [esi + 4]
mov eax, ecx
and al, 7
shr cl, 3
and cl, 0xf
neg cl
movsx edi, cl
mov edx, dword [esi + edi + 0x108]
mov dword [esi + 0x1c], edx
mov dword [esi + 0x5c], ebx
mov ecx, eax
shl edx, cl
mov dword [esi + 0x14], edx
not cl
mov edx, dword [esi + edi + 0x104]
mov dword [esi + 0x10], edi
mov dword [esi + 4], edx
shr edx, 1
shr edx, cl
mov edi, dword [esi + edi + 0x10c]
mov ecx, eax
mov ebx, dword [esi + 0x1c]
shld edi, ebx, cl
mov dword [esi + 0x1c], edi
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + ecx + 0x100]
mov edi, ebx
mov ecx, eax
shl edi, cl
shld dword [esi + 4], ebx, cl
or edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x5c]
lea eax, [ebx*4]
lea ecx, [eax + eax*4]
neg ecx
add cl, 0x70
mov eax, ebx
shl eax, cl
add eax, ebx
imul ecx, eax, 0xffffff10
shl eax, 8
add eax, 0xffffef00
add ecx, 0x1000
imul ecx, eax
imul eax, ecx, 0x249d6a14
lea ebx, [ecx + eax]
add ebx, 0xe87c9190
mov eax, dword [esi + 0x1c]
xor dword [esi + 0x38], eax
xor dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 4]
xor dword [esi + 0x40], eax
xor dword [esi + 0x44], edi
cmp dword [esi + 0x48], ebx
mov edx, dword [esi + 0x18]
jle 0x54328a
lea eax, [ecx + ebx]
mov dword [esi + 0x18], edx
sub edx, eax
mov eax, dword [esi + 0x28]
sbb eax, 0
cmp edx, 0x10
sbb eax, 0
mov eax, dword [ecx + ebx + 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + ebx + 8]
mov edi, dword [ecx + ebx]
mov dword [esi + 4], edi
mov edi, dword [ecx + ebx + 4]
jge 0x543a24
mov dword [esi + 0x18], edi
mov dword [esi + 0x28], eax
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x80], edx
lea ecx, [edx*8]
cmp dword [esi + 0xb0], 0xd5e70d24
jne 0x543977
movups xmmword [esi + 0x230], xmm0
movups xmmword [esi + 0x220], xmm1
mov eax, ecx
and al, 7
shr cl, 3
and cl, 0xf
neg cl
movsx edi, cl
mov dword [esi + 0x24], edi
mov edx, dword [esi + edi + 0x238]
mov dword [esi + 0x20], edx
mov ecx, eax
shl edx, cl
mov dword [esi + 0x10], edx
mov ah, al
not ah
mov edx, dword [esi + edi + 0x234]
mov dword [esi + 0x14], edx
shr edx, 1
mov cl, ah
shr edx, cl
mov edi, dword [esi + edi + 0x23c]
mov ecx, eax
mov ebx, dword [esi + 0x20]
shld edi, ebx, cl
mov dword [esi + 0x20], edi
or edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + ecx + 0x230]
mov dword [esi + 0x10], edi
mov ecx, eax
shl edi, cl
mov ebx, dword [esi + 0x10]
shld dword [esi + 0x14], ebx, cl
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x16c], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x164], ecx
mov dword [esi + 0x160], edi
mov dword [esi + 0x168], edx
movups xmmword [esi + 0x150], xmm1
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + ecx + 0x168]
mov edi, dword [esi + ecx + 0x16c]
mov ebx, ecx
mov ecx, eax
shld edi, edx, cl
shl edx, cl
mov dword [esi + 0x20], edx
mov ecx, dword [esi + ebx + 0x160]
mov dword [esi + 0x10], ecx
mov ebx, dword [esi + ebx + 0x164]
mov dword [esi + 0x14], ebx
shr ebx, 1
mov cl, ah
shr ebx, cl
mov ecx, eax
mov edx, dword [esi + 0x10]
shld dword [esi + 0x14], edx, cl
mov eax, dword [esi + 0x10]
shl eax, cl
mov dword [esi + 0x10], eax
or ebx, dword [esi + 0x20]
mov ecx, eax
not ecx
mov dword [esi + 0x24], ecx
mov eax, ebx
mul ecx
mov dword [esi + 0x20], eax
mov ecx, edi
imul edi, dword [esi + 0x24]
add edi, edx
mov edx, dword [esi + 0x14]
not edx
mov dword [esi + 0x2c], edx
mov eax, ebx
imul eax, edx
add edi, eax
not ebx
not ecx
mov eax, dword [esi + 0x10]
imul ecx, eax
mul ebx
add edx, ecx
mov ecx, dword [esi + 0x14]
imul ebx, ecx
add ebx, edx
add eax, dword [esi + 0x20]
mov dword [esi + 0x34], eax
adc ebx, edi
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x10]
mul edi
mov dword [esi + 0x30], edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x2c]
mul edi
mov edi, eax
add edi, dword [esi + 0x30]
adc edx, 0
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x24]
mul ecx
mov ecx, eax
add ecx, edi
adc edx, dword [esi + 0x10]
mov edi, edx
setb byte [esi + 0x10]
mov eax, dword [esi + 0x2c]
mul dword [esi + 0x14]
add eax, edi
movzx edi, byte [esi + 0x10]
adc edx, edi
add eax, dword [esi + 0x34]
adc edx, ebx
shld edx, eax, 1
shld eax, ecx, 1
mov edi, dword [esi + 0x20]
shld ecx, edi, 1
add edi, edi
mov dword [esi + 0x20], edi
mov ebx, edi
add ebx, 0xfffffffb
mov dword [esi + 0x2c], ebx
mov edi, ecx
adc edi, 0xffffffff
mov dword [esi + 0x24], edi
mov edi, eax
adc edi, 0xffffffff
mov dword [esi + 0x14], edi
mov edi, edx
adc edi, 0xffffffff
mov ebx, 5
sub ebx, dword [esi + 0x20]
mov dword [esi + 0x10], ebx
mov ebx, 0
sbb ebx, ecx
mov dword [esi + 0x20], ebx
mov ecx, 0
sbb ecx, eax
mov eax, 0
sbb eax, edx
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x14]
mul dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov ebx, edx
mov eax, dword [esi + 0x14]
imul eax, dword [esi + 0x20]
add ebx, eax
imul edi, dword [esi + 0x10]
add ebx, edi
mov edi, dword [esi + 0x2c]
mov eax, edi
mul ecx
imul ecx, dword [esi + 0x24]
add ecx, edx
mov edx, dword [esi + 0x34]
imul edx, edi
add ecx, edx
add eax, dword [esi + 0x30]
mov dword [esi + 0x34], eax
adc ecx, ebx
mov ebx, dword [esi + 0x10]
mov eax, ebx
mul edi
mov dword [esi + 0x30], edx
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x20]
mul edi
mov edi, eax
add edi, dword [esi + 0x30]
adc edx, 0
mov dword [esi + 0x30], edx
mov eax, ebx
mul dword [esi + 0x24]
mov ebx, edx
add eax, edi
mov dword [esi + 0x10], eax
adc ebx, dword [esi + 0x30]
setb byte [esi + 0x30]
mov eax, dword [esi + 0x20]
mul dword [esi + 0x24]
mov edi, eax
add edi, ebx
movzx eax, byte [esi + 0x30]
adc edx, eax
add edi, dword [esi + 0x34]
mov dword [esi + 0x20], edi
adc edx, ecx
mov dword [esi + 0x24], edx
movups xmmword [esi + 0x130], xmm1
mov eax, dword [esi + 0x14]
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x144], eax
mov dword [esi + 0x148], edi
mov dword [esi + 0x14c], edx
mov ecx, dword [esi + 0x2c]
mov eax, ecx
and al, 7
shr cl, 3
and cl, 0xf
neg cl
movsx edi, cl
mov ebx, dword [esi + edi + 0x148]
mov edx, dword [esi + edi + 0x14c]
mov ecx, eax
shld edx, ebx, cl
mov dword [esi + 0x2c], edx
shl ebx, cl
mov dword [esi + 0x34], ebx
not cl
mov edx, dword [esi + edi + 0x140]
mov ebx, dword [esi + edi + 0x144]
mov edi, ebx
shr edi, 1
shr edi, cl
mov ecx, eax
shld ebx, edx, cl
or edi, dword [esi + 0x34]
shl edx, cl
add edx, dword [esi + 4]
adc ebx, dword [esi + 0x18]
adc edi, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
adc eax, dword [esi + 0x1c]
mov dword [esi + 0x2c], eax
sub dword [esi + 0x14], edx
mov eax, dword [esi + 0x10]
sbb eax, ebx
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x20]
sbb edx, edi
mov ecx, dword [esi + 0x24]
sbb ecx, dword [esi + 0x2c]
mov dword [esi + 0x24], ecx
mov edi, dword [esi + 4]
sub edi, dword [esi + 0x14]
mov dword [esi + 4], edi
mov ebx, dword [esi + 0x18]
sbb ebx, eax
mov dword [esi + 0x18], ebx
mov edi, edx
mov dword [esi + 0x20], edx
sbb dword [esi + 0x28], edx
sbb dword [esi + 0x1c], ecx
mov eax, edx
mul dword [esi + 4]
mov dword [esi + 0x2c], eax
mov ecx, edi
imul ecx, ebx
add ecx, edx
mov eax, dword [esi + 0x24]
imul eax, dword [esi + 4]
add ecx, eax
mov ebx, dword [esi + 0x14]
mov eax, ebx
mul dword [esi + 0x28]
mov edi, dword [esi + 0x28]
imul edi, dword [esi + 0x10]
add edi, edx
mov edx, dword [esi + 0x1c]
imul edx, ebx
add edi, edx
add eax, dword [esi + 0x2c]
mov dword [esi + 0x1c], eax
adc edi, ecx
mov dword [esi + 0x28], edi
mov eax, dword [esi + 0x18]
mov ecx, ebx
mov dword [esi + 0x14], ebx
mul ebx
mov ebx, edx
mov dword [esi + 0x34], eax
mov edi, dword [esi + 4]
mov eax, edi
mul ecx
mov dword [esi + 0x2c], eax
mov ecx, edx
add ecx, dword [esi + 0x34]
adc ebx, 0
mov eax, edi
mul dword [esi + 0x10]
mov edi, edx
add eax, ecx
mov dword [esi + 4], eax
adc edi, ebx
setb cl
mov eax, dword [esi + 0x18]
mul dword [esi + 0x10]
add eax, edi
movzx ecx, cl
adc edx, ecx
add eax, dword [esi + 0x1c]
adc edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x120], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x124], ecx
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edx
movups xmmword [esi + 0x110], xmm1
mov eax, dword [esi + 0x14]
mov ch, al
and ch, 7
mov cl, al
shr cl, 3
and cl, 0xf
neg cl
movsx ebx, cl
mov edx, dword [esi + ebx + 0x128]
mov eax, edx
mov cl, ch
shl eax, cl
mov dword [esi + 0x28], eax
mov byte [esi + 4], ch
not cl
mov edi, dword [esi + ebx + 0x124]
mov dword [esi + 0x18], edi
shr edi, 1
shr edi, cl
mov eax, dword [esi + ebx + 0x12c]
mov cl, ch
shld eax, edx, cl
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x80]
shl eax, 4
mov edx, 0x210
sub edx, eax
mov ecx, edx
shl ecx, 0x10
sub edx, ecx
mov ebx, dword [esi + ebx + 0x120]
mov eax, ebx
movzx ecx, byte [esi + 4]
shl eax, cl
shld dword [esi + 0x18], ebx, cl
mov ecx, edx
mov ebx, dword [esi + 0x5c]
shl ebx, cl
and eax, dword [esi + 0x14]
mov dword [esi + 4], eax
sub edx, ebx
sub ebx, edx
inc ebx
imul ebx, edx
or edi, dword [esi + 0x28]
mov eax, dword [esi + 0x1c]
and eax, dword [esi + 0x24]
mov dword [esi + 0x1c], eax
and edi, dword [esi + 0x20]
mov eax, edi
mov edi, dword [esi + 0x18]
and edi, dword [esi + 0x10]
mov dword [esi + 0x24], 1
mov edx, dword [esi + 0xac]
jmp 0x543a15
movdqu xmmword [esi + 0x250], xmm2
movups xmmword [esi + 0x240], xmm1
mov edx, ecx
and dl, 7
shr cl, 3
and cl, 0xf
neg cl
movsx eax, cl
mov ebx, dword [esi + eax + 0x258]
mov edi, dword [esi + eax + 0x25c]
mov ch, dl
mov cl, dl
shld edi, ebx, cl
mov edx, edi
mov cl, ch
shl ebx, cl
mov dword [esi + 0x14], ebx
not cl
mov edi, dword [esi + eax + 0x250]
mov eax, dword [esi + eax + 0x254]
mov ebx, eax
shr ebx, 1
shr ebx, cl
mov cl, ch
shld eax, edi, cl
or ebx, dword [esi + 0x14]
not edx
and dword [esi + 0x1c], edx
not ebx
mov edx, dword [esi + 0x28]
and edx, ebx
not eax
mov ebx, dword [esi + 0x18]
and ebx, eax
shl edi, cl
not edi
and dword [esi + 4], edi
mov edi, ebx
mov ebx, dword [esi + 0x5c]
mov eax, dword [esi + 0x80]
add ebx, eax
add ebx, 0xfffffff4
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x24]
lea eax, [eax + ecx*4 + 4]
mov dword [esi + 0x18], eax
mov eax, edx
mov edx, dword [esi + 0x18]
inc ecx
mov dword [esi + 0x24], ecx
add edx, dword [edx]
mov dword [esi + 0x18], edx
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x4c]
cmp dword [esi + 0xb4], 0x3b72900b
jne 0x5433e7
mov edx, dword [esi + 4]
xor dword [esi + 0x44], edx
xor dword [esi + 0x40], edi
xor dword [esi + 0x3c], eax
mov eax, dword [esi + 0x1c]
xor dword [esi + 0x38], eax
add ebx, 0x10
cmp ebx, dword [esi + 0x48]
mov edx, dword [esi + 0x18]
jl 0x5434d3
jmp 0x54328a
movsd xmm0, qword [0xb0dd40]
xorps xmm0, xmmword [0xaa8ce0]
movlps qword [0xb0dd40], xmm0
mov al, 0x9e
xchg byte [0xb0dd48], al
mov dword [esi + 0x270], 9
mov dword [esi + 0x270], 9
lea ecx, [esi + 0xd4]
push 0xb0dd40
call fcn.00540910
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0xbc]
mov dword [esi + 0x270], 0xa
lea eax, [esi + 0x50]
lea ecx, [esi + 0xb8]
push 0
push 3
push eax
push 0x186a1
lea eax, [esi + 0x88]
push eax
lea eax, [esi + 0xd4]
push eax
push 2
call fcn.0055d720
add esp, 0x1c
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
mov ebx, dword [esi + 8]
sub edi, ebx
add edi, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0xd4]
call edi
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x88]
call edi
mov eax, dword [0xb0ea04]
mov edi, dword [0xb0e9c0]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0xbc]
call edi
cmp dword [esi + 0xb8], 2
jne 0x543b77
mov eax, dword [ebp + 8]
mov byte [eax], 1
mov eax, dword [0xb0e9f4]
mov edi, dword [0xb0e9b4]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
jmp 0x543d2e
mov eax, dword [esi + 0xc]
or byte [eax + 0xc5], 2
mov eax, dword [0xb0e9f4]
mov edi, dword [0xb0e9b4]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
cmp byte [esi + 0x64], 0
je 0x543d51
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x12c]
test ecx, ecx
je 0x543d51
mov eax, dword [esi + 0x78]
cmp ecx, eax
ja 0x543d51
mov ecx, dword [esi + 0xc]
test byte [ecx + 0xc5], 1
jne 0x543d51
mov dword [esi + 0xd4], eax
movzx eax, word [0xb5302c]
mov dword [esi + 4], eax
mov ecx, ebx
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 0x138]
mov eax, dword [0xb0e9ec]
mov edi, dword [0xb0e9bc]
sub edi, ecx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 4]
call edi
mov edi, eax
mov eax, dword [0xb0ea08]
mov ebx, dword [0xb0e9d4]
sub ebx, dword [esi + 8]
add ebx, eax
mov ecx, ebx
call dword [0xb0836c]
lea ecx, [esi + 0x170]
push edi
call ebx
movzx eax, byte [0xb0dd48]
cmp al, 0x9e
je 0x543c79
mov cl, 0xe0
mov al, 0x41
lock cmpxchg byte [0xb0dd48], cl
je 0x543c51
cmp al, 0x9e
jne 0x543c3f
jmp 0x543c79
movsd xmm0, qword [0xb0dd40]
xorps xmm0, xmmword [0xaa8ce0]
movlps qword [0xb0dd40], xmm0
mov al, 0x9e
xchg byte [0xb0dd48], al
mov dword [esi + 0x270], 0xb
mov dword [esi + 0x270], 0xb
lea ecx, [esi + 0x88]
push 0xb0dd40
call fcn.00540910
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0xbc]
mov dword [esi + 0x270], 0xc
lea eax, [esi + 0xd4]
lea ecx, [esi + 0xbc]
push 0
push 3
push eax
push 0x186a7
lea eax, [esi + 0x170]
push eax
lea eax, [esi + 0x88]
push eax
push 2
call fcn.0055d720
add esp, 0x1c
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
mov ebx, dword [esi + 8]
sub edi, ebx
add edi, eax
mov dword [esi + 0x270], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x88]
call edi
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
cmp dword [esi + 0xbc], 2
jne 0x543d47
mov eax, dword [ebp + 8]
mov byte [eax], 1
xor eax, eax
mov ecx, dword [esi + 0x268]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov eax, dword [esi + 0xc]
or byte [eax + 0xc5], 1
mov edi, dword [esi + 0xc]
mov ecx, dword [edi + 0xc4]
mov edx, ecx
not edx
mov al, 1
test edx, 0x700
je 0x543d30
and ecx, 0xfffffffd
mov dword [edi + 0xc4], ecx
jmp 0x543d30
mov dword [esi + 0x270], 0
call fcn.00748ef1
nop word cs:[eax + eax]
push ebp
sub esp, 0x20
lea esi, [ebp - 0x274]
mov ebp, dword [esi + 0x260]
call fcn.0077ccd0
nop word cs:[eax + eax]
push ebp
sub esp, 0x20
lea esi, [ebp - 0x274]
mov ebp, dword [esi + 0x260]
mov eax, dword [0xb0e9e8]
mov edi, dword [0xb0e9b8]
sub edi, dword [esi + 8]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0x170]
call edi
add esp, 0x20
pop ebp
ret