Function at 0x542af0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov esi, esp
mov dword [esi + 0x30], ebp
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp + 8]
mov dword [esi + 0x34], esp
mov dword [esi + 0x40], 0xffffffff
lea eax, [esi + 0x38]
mov dword [esi + 0x3c], 0x5ce330
mov ecx, dword fs:[0]
mov dword [esi + 0x38], ecx
mov dword fs:[0], eax
mov eax, dword [0x60ce78]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60ce7c], 0xa
setl cl
test cl, al
jne 0x542b53
xor cl, al
je 0x542ba4
push eax
push eax
mov edi, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0x2c], esp
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x10]
push edi
call fcn.00542300
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [ecx]
mov edx, dword [0x60ce78]
lea edi, [edx + 1]
imul edx, edi
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete dl
cmp dword [0x60ce7c], 0xa
setl dh
test dh, dl
jne 0x542bb6
xor dh, dl
jne 0x542bb6
push eax
push eax
mov eax, esp
mov ecx, dword [esi + 0xc]
add ecx, 0x10
push eax
call fcn.00542300
jmp 0x542b53
btc ecx, eax
bt ecx, eax
jb 0x542cee
mov edx, dword [esi + 0x10]
lea ecx, [edx + 8]
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
mov byte [edx], al
mov dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x14], ecx
push eax
call fcn.0052bb20
mov ecx, dword [0x60ce78]
mov eax, dword [0x60ce7c]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete byte [esi + 0x1c]
cmp eax, 0xa
setge bh
setl bl
xor bl, byte [esi + 0x1c]
jne 0x542c62
or bh, dl
test bh, 1
je 0x542c62
mov edi, dword [esi + 0x14]
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
mov ebx, dword [esi + 0x10]
mov byte [ebx], al
mov ecx, edi
push eax
call fcn.0052bb20
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
mov byte [ebx], al
mov ecx, edi
push eax
call fcn.0052bb20
mov ecx, dword [0x60ce78]
mov eax, dword [0x60ce7c]
lea edx, [ecx + 1]
imul edx, ecx
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
sete bl
setne dl
cmp eax, 0xa
setl bh
setge dh
cmp bh, bl
jne 0x542c62
or dh, dl
jne 0x542c10
cmp byte [ebp + 0x10], 0
jne 0x542c9c
mov edx, dword [esi + 0xc]
lea ecx, [edx + 0x38]
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
mov dword [esi + 0x40], 0
push dword [esi + 0x10]
push 5
push eax
call fcn.00542970
test al, al
je 0x542f98
mov ecx, dword [0x60ce78]
mov eax, dword [0x60ce7c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp eax, 0xa
setl al
or al, cl
mov byte [esi + 0x1b], al
mov eax, dword [0x60ce38]
mov dword [esi + 0x20], eax
mov eax, dword [0x60ce3c]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov dword [esi + 0x1c], ecx
mov eax, dword [eax + 8]
mov dword [esi + 0x14], eax
jne 0x542da5
mov eax, dword [esi + 0x20]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
jmp 0x542cfd
mov byte [ebx], 0
mov dword [ebx + 4], 0
jmp 0x54335e
test eax, eax
sete dl
sete byte [esi + 6]
mov ecx, 0xb9042a64
mov edi, 0x11eb61c3
mov eax, 0x11eb61c3
cmove eax, ecx
cmp dword [esi + 0x24], 0xa
cmovge eax, edi
setl dh
setl byte [esi + 7]
xor dh, dl
cmovne eax, ecx
mov edi, 0xc938cd57
mov ecx, 0x7b9734d
jmp 0x542d40
mov edi, eax
nop dword [eax]
cmp edi, 0x7b9734c
jg 0x542d80
cmp edi, 0xb9042a64
je 0x542d97
cmp edi, 0xc938cd57
jne 0x542d40
movzx edx, byte [esi + 6]
mov dh, byte [esi + 7]
mov ebx, edx
xor bl, dh
mov ebx, 0x11eb61c3
cmovne ebx, ecx
test dh, dh
mov edi, ebx
cmovne edi, ecx
test dl, dl
cmove edi, ebx
jmp 0x542d40
cmp edi, 0x7b9734d
je 0x542d37
cmp edi, 0x11eb61c3
jne 0x542d40
mov edi, 0x7b9734d
jmp 0x542d40
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x14]
sete byte [esi + 8]
movzx eax, byte [esi + 8]
mov eax, dword [esi + 0x20]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete dl
sete byte [esi + 6]
mov ecx, 0xb9042a64
mov ebx, 0x11eb61c3
cmove ebx, ecx
cmp dword [esi + 0x24], 0xa
mov edi, 0x11eb61c3
cmovge ebx, edi
setl dh
setl byte [esi + 7]
xor dh, dl
cmovne ebx, ecx
mov ecx, 0xc938cd57
nop word cs:[eax + eax]
cmp ecx, 0x7b9734c
jg 0x542e40
cmp ecx, 0xb9042a64
je 0x542e5b
cmp ecx, 0xc938cd57
jne 0x542df0
movzx edx, byte [esi + 6]
movzx ecx, byte [esi + 7]
mov ch, dl
xor ch, cl
mov edi, 0x11eb61c3
mov dword [esi + 0x28], eax
mov eax, 0x7b9734d
cmovne edi, eax
test cl, cl
mov ecx, edi
cmovne ecx, eax
mov eax, dword [esi + 0x28]
test dl, dl
cmove ecx, edi
jmp 0x542df0
cmp ecx, 0x7b9734d
je 0x542e57
cmp ecx, 0x11eb61c3
jne 0x542df0
mov ecx, 0x7b9734d
jmp 0x542df0
mov ecx, ebx
jmp 0x542df0
mov ecx, dword [esi + 0x1c]
cmp ecx, dword [esi + 0x14]
sete byte [esi + 8]
movzx ecx, byte [esi + 8]
cmp byte [esi + 0x1b], 0
je 0x542cfd
test cl, 1
je 0x542ed2
mov edi, esp
push eax
sub esp, 0xc
mov eax, esp
mov ecx, dword [esi + 0x10]
vmovups xmm0, xmmword [ecx]
vmovups xmmword [eax], xmm0
mov byte [ecx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov eax, dword [0x60c9a0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60c9a4], 0xa
setl cl
test cl, al
jne 0x54309c
xor cl, al
jne 0x54309c
nop dword [eax + eax]
jmp 0x542ed0
mov eax, dword [esi + 0x14]
mov eax, dword [eax - 4]
test eax, eax
je 0x542f98
mov ecx, dword [0x60c9a8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete byte [esi + 6]
mov edi, dword [0x60c9ac]
sete bl
mov ecx, 0x881bd26b
mov edx, 0x703f1b4d
cmove edx, ecx
cmp edi, 0xa
mov edi, 0x703f1b4d
setl bh
setl byte [esi + 7]
cmovge edx, edi
xor bh, bl
movzx ebx, byte [eax]
mov byte [esi + 0x14], bl
cmovne edx, ecx
mov ecx, 0xd988a2e6
nop
cmp ecx, 0xd988a2e5
jg 0x542f50
cmp ecx, 0x881bd26b
je 0x542faa
cmp ecx, 0xd7920771
jne 0x542f30
mov ecx, edx
jmp 0x542f30
cmp ecx, 0x703f1b4d
je 0x542f91
cmp ecx, 0xd988a2e6
jne 0x542f30
movzx ebx, byte [esi + 6]
movzx ecx, byte [esi + 7]
mov bh, bl
xor bh, cl
test cl, cl
mov ecx, 0x703f1b4d
mov edi, 0xd7920771
cmovne ecx, edi
test bl, bl
mov edi, 0x703f1b4d
cmove ecx, edi
test bh, bh
mov edi, 0xd7920771
cmovne ecx, edi
jmp 0x542f30
mov ecx, 0xd7920771
jmp 0x542f30
mov ebx, dword [ebp + 8]
mov byte [ebx], 0
mov dword [ebx + 4], 0
jmp 0x543356
cmp byte [esi + 0x14], 2
sete byte [esi + 8]
movzx ecx, byte [esi + 8]
cmp cl, 1
jne 0x5431ad
mov ecx, dword [eax + 8]
mov dword [esi + 0x40], 0
push dword [esi + 0x10]
call fcn.00527de0
mov eax, dword [0x60c998]
mov ecx, dword [0x60c99c]
lea edx, [eax + 1]
imul edx, eax
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0xe2b5dd16
mov edi, 0xdab7736
cmovne edi, eax
test ebx, edx
mov edx, dword [esi + 0xc]
mov edx, dword [edx + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 8]
sete byte [esi + 6]
cmovne eax, edi
cmp ecx, 0xa
setl byte [esi + 7]
cmovge eax, edi
mov edx, dword [edx + 4]
add edx, 0xfffffff0
mov ebx, 0xbd9f8615
nop dword [eax + eax]
cmp ebx, 0xdab7735
jg 0x543050
cmp ebx, 0xbd9f8615
je 0x543064
cmp ebx, 0xe2b5dd16
jne 0x543030
jmp 0x543242
cmp ebx, 0xdab7736
je 0x543095
cmp ebx, 0x2ca87c55
jne 0x543030
mov ebx, eax
jmp 0x543030
movzx ecx, byte [esi + 6]
movzx ebx, byte [esi + 7]
mov ch, bl
xor ch, cl
test bl, bl
mov ebx, 0xdab7736
mov edi, 0x2ca87c55
cmovne ebx, edi
test cl, cl
mov edi, 0xdab7736
cmove ebx, edi
test ch, ch
mov ecx, 0x2ca87c55
cmovne ebx, ecx
jmp 0x543030
mov ebx, 0x2ca87c55
jmp 0x543030
mov ebx, dword [esi + 0xc]
mov ecx, dword [ebx]
call fcn.0053d9c0
mov esp, edi
mov eax, dword [ebx]
mov ecx, dword [0x60ce80]
mov edx, dword [0x60ce84]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 6]
cmp edx, 0xa
setl byte [esi + 7]
mov ebx, 0xb399b354
nop word cs:[eax + eax]
cmp ebx, 0xb7e3318b
jg 0x543150
cmp ebx, 0xb399b354
je 0x543173
cmp ebx, 0xb3e10005
jne 0x5430e0
mov ecx, dword [ebp + 8]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov byte [ecx], 1
mov ecx, dword [esi + 8]
mov dword [ecx + 4], eax
mov ecx, dword [0x60ce80]
lea ebx, [ecx + 1]
imul ebx, ecx
not ebx
or ebx, 0xfffffffe
cmp ebx, 0xffffffff
sete cl
mov ebx, 0x11441d39
mov edi, 0xb7e3318c
cmove ebx, edi
cmp dword [0x60ce84], 0xa
mov edx, 0x11441d39
cmovge ebx, edx
setl ch
xor ch, cl
cmovne ebx, edi
jmp 0x5430e0
cmp ebx, 0xb7e3318c
je 0x5431a2
cmp ebx, 0x11441d39
jne 0x5430e0
mov ecx, dword [ebp + 8]
mov byte [ecx], 1
mov dword [ecx + 4], eax
mov ebx, 0xb3e10005
jmp 0x5430e0
movzx ecx, byte [esi + 6]
movzx ebx, byte [esi + 7]
mov ch, bl
xor ch, cl
test bl, bl
mov ebx, 0x11441d39
mov edx, 0xb3e10005
cmovne ebx, edx
test cl, cl
mov edi, 0x11441d39
cmove ebx, edi
test ch, ch
cmovne ebx, edx
jmp 0x5430e0
mov eax, dword [esi + 8]
mov ebx, dword [ebp + 8]
jmp 0x543356
mov eax, dword [esi + 0xc]
lea edi, [eax + 0x20]
mov ecx, edi
mov ebx, dword [esi + 0x2c]
push ebx
call fcn.00542300
movzx ecx, byte [ebx + 4]
mov eax, 0xfffffffe
rol eax, cl
mov ecx, dword [ebx]
mov ebx, dword [ecx]
not ebx
or ebx, eax
mov ecx, edi
call fcn.00542800
cmp ebx, 0xffffffff
je 0x543373
mov edi, esp
sub esp, 0x10
mov eax, esp
mov ecx, dword [esi + 0x10]
vmovups xmm0, xmmword [ecx]
vmovups xmmword [eax], xmm0
mov byte [ecx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov eax, dword [0x60c9a0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60c9a4], 0xa
setl cl
test cl, al
mov ebx, dword [ebp + 8]
jne 0x5433b2
xor cl, al
jne 0x5433b2
nop word [eax + eax]
jmp 0x543240
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
mov ecx, dword [0x60ce80]
mov edx, dword [0x60ce84]
lea edi, [ecx - 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 6]
cmp edx, 0xa
setl byte [esi + 7]
mov edi, 0xb399b354
mov ebx, dword [ebp + 8]
nop dword [eax + eax]
cmp edi, 0xb7e3318b
jg 0x543300
cmp edi, 0xb399b354
je 0x543327
cmp edi, 0xb3e10005
jne 0x543280
mov dword [esi + 8], ebx
mov ecx, dword [esi + 8]
mov byte [ecx], 1
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov ecx, dword [0x60ce80]
mov ebx, dword [0x60ce84]
lea edi, [ecx + 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete dl
cmp ebx, 0xa
setl dh
xor dh, dl
mov edx, 0x11441d39
mov eax, 0xb7e3318c
cmovne edx, eax
test ecx, edi
mov edi, edx
cmove edi, eax
cmp ebx, 0xa
mov ebx, dword [ebp + 8]
cmovge edi, edx
jmp 0x543280
cmp edi, 0xb7e3318c
je 0x543353
cmp edi, 0x11441d39
jne 0x543280
mov byte [ebx], 1
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov edi, 0xb3e10005
jmp 0x543280
movzx ecx, byte [esi + 6]
mov bh, byte [esi + 7]
mov bl, cl
xor bl, bh
mov edx, 0x11441d39
mov eax, 0xb3e10005
cmovne edx, eax
test bh, bh
mov ebx, dword [ebp + 8]
mov edi, edx
cmovne edi, eax
test cl, cl
cmove edi, edx
jmp 0x543280
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
call fcn.004668d0
mov eax, dword [esi + 0x38]
mov dword fs:[0], eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov edx, dword [0x60ce78]
mov eax, dword [0x60ce7c]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dl
cmp eax, 0xa
setl dh
test dh, dl
mov ebx, dword [ebp + 8]
jne 0x5434d4
xor dh, dl
jne 0x5434d4
nop word cs:[eax + eax]
jmp 0x5433b0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x30]
call fcn.0053d9c0
mov esp, edi
mov eax, dword [0x60ce88]
mov ecx, dword [0x60ce8c]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 6]
cmp ecx, 0xa
setl byte [esi + 7]
mov edi, 0x910600ce
nop word [eax + eax]
cmp edi, 0x98ee729e
jg 0x543440
cmp edi, 0x84282571
je 0x5434b7
cmp edi, 0x910600ce
jne 0x5433f0
movzx ecx, byte [esi + 6]
mov bh, byte [esi + 7]
mov bl, cl
xor bl, bh
mov eax, 0xaacd1ccf
mov edx, 0x98ee729f
cmovne eax, edx
test bh, bh
mov ebx, dword [ebp + 8]
mov edi, eax
cmovne edi, edx
test cl, cl
cmove edi, eax
jmp 0x5433f0
cmp edi, 0x98ee729f
je 0x543463
cmp edi, 0xaacd1ccf
jne 0x5433f0
mov byte [ebx], 1
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x30]
mov dword [ebx + 4], eax
mov edi, 0x98ee729f
jmp 0x5433f0
mov dword [esi + 8], ebx
mov eax, dword [esi + 8]
mov byte [eax], 1
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + 0x30]
mov dword [eax + 4], ecx
mov eax, dword [0x60ce88]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov edi, 0xaacd1ccf
mov edx, 0x84282571
cmove edi, edx
cmp dword [0x60ce8c], 0xa
mov ecx, 0xaacd1ccf
cmovge edi, ecx
setl cl
xor cl, al
cmovne edi, edx
jmp 0x5433f0
mov eax, dword [esi + 8]
mov ecx, dword [0x60ce78]
mov eax, dword [0x60ce7c]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
and ecx, edx
jmp 0x5434de
mov byte [ebx], 0
mov dword [ebx + 4], 0
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
test al, cl
jne 0x543356
xor al, cl
jne 0x543356
nop dword [eax]
jmp 0x543500