Function at 0x401a30
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 + 0x34], esp
mov dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x3c], 0x416450
mov edi, dword [ebp + 8]
lea eax, [esi + 0x38]
mov ecx, dword fs:[0]
mov dword [esi + 0x38], ecx
mov dword fs:[0], eax
push dword [ebp + 0xc]
call fcn.00422ae0
add esp, 4
mov dword [esi + 0x24], eax
mov eax, dword [edi]
mov edx, edi
mov ecx, dword [eax + 4]
mov eax, edx
mov edi, dword [edi + ecx + 0x20]
mov ebx, dword [eax + ecx + 0x24]
mov eax, dword [esi + 0x24]
mov ecx, 0
mov edx, edi
neg edx
mov edx, 0
sbb ecx, ebx
setl cl
cmp eax, edi
sbb edx, ebx
setl dl
mov ch, dl
or dl, cl
xor ch, cl
xor dl, 1
not ch
mov dh, dl
and ch, cl
and dh, ch
xor ch, dl
mov dl, cl
or ch, dh
xor dl, ch
or ch, cl
not ch
or ch, dl
sub edi, eax
mov eax, 0
sbb ebx, 0
test ch, 1
lea ecx, [esi + 0x28]
cmovne edi, eax
cmovne ebx, eax
mov dword [esi + 0x14], edi
mov edi, dword [ebp + 8]
mov dword [esi + 0xc], ebx
push edi
call fcn.0040c890
cmp byte [esi + 0x2c], 0
je 0x401e97
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov ecx, dword [edi + eax + 0x14]
mov dword [esi + 0x10], eax
mov eax, edi
mov edx, ecx
mov ebx, ecx
not edx
and ebx, 0xc4a2f83a
mov edi, edx
and edi, 0x3b5d0605
or ebx, edi
mov edi, edx
or edi, 0xfffffe3f
xor edi, ebx
mov ebx, edi
xor edi, 0x3b5d07c5
xor ebx, 0xc4a2f83a
and edi, ecx
and edx, ebx
or edi, edx
xor ebx, edi
and ebx, edi
cmp ebx, 0x40
je 0x401ea7
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
nop word [eax + eax]
mov dword [esi + 0x14], eax
cmp eax, 1
mov eax, edi
mov dword [esi + 0xc], edi
sbb eax, 0
mov eax, dword [ebp + 8]
mov ecx, eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x10], eax
jl 0x401ea5
mov ecx, dword [0x495c50]
lea edx, [ecx - 1]
imul edx, ecx
mov edi, edx
and edx, 0x96740548
not edi
and edi, 0x698bfab7
or edi, edx
mov ecx, edi
mov edx, edi
xor edi, 0x698bfab6
xor ecx, 0x96740548
xor edx, 0x96740549
and edi, 0xfffffffe
and edx, ecx
and ecx, 1
or ecx, edi
mov edi, edx
and edx, 0x7db6fe59
not edi
mov ebx, edi
and ebx, 0x824901a6
or edx, ebx
mov ebx, ecx
and ecx, 0x7db6fe59
not ebx
or edi, ebx
and ebx, 0x824901a6
or ecx, ebx
not edi
xor ecx, edx
mov edx, dword [ebp + 8]
or edi, ecx
mov ecx, edi
and edi, 0x2032ba80
not ecx
mov eax, dword [edx + eax + 0x38]
mov edx, dword [0x495c54]
and ecx, 0xdfcd457f
or ecx, edi
xor ecx, 0x2032ba80
sete ch
setne bl
sete byte [esi + 6]
cmp edx, 9
mov dword [esi + 8], eax
mov eax, 0xaad0f9ce
setg bh
cmp edx, 0xa
setl cl
setl byte [esi + 7]
mov edx, ecx
and cl, bl
and bl, bh
and dl, ch
and ch, bh
or cl, ch
or dl, bl
mov dh, cl
xor dl, 1
xor dh, 1
or dl, bh
mov ch, dh
and ch, cl
xor dh, ch
or dh, ch
mov ch, dh
xor dh, 1
and dh, dl
xor dl, 1
and ch, dl
or dh, ch
mov ch, dl
xor ch, cl
or cl, dl
xor cl, 1
or cl, ch
mov dl, cl
xor dl, dh
test cl, 1
mov ecx, 0x6ca61bde
cmovne ecx, eax
test dh, 1
cmove ecx, eax
test dl, 1
mov edx, 0x6ca61bde
cmove ecx, edx
mov edx, 0x668a73d1
mov edi, dword [esi + 0xc]
nop word cs:[eax + eax]
nop
cmp edx, 0x668a73d0
jg 0x401cc0
cmp edx, 0xaad0f9ce
je 0x401cd6
cmp edx, 0x161b3d00
jne 0x401c90
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x10]
movzx eax, byte [eax + edx + 0x40]
mov edx, ecx
mov byte [esi + 0x18], al
cmp edx, 0x668a73d0
jle 0x401c98
cmp edx, 0x6ca61bde
je 0x401d60
cmp edx, 0x668a73d1
jne 0x401c90
jmp 0x401cf0
mov edx, 0x161b3d00
cmp edx, 0x668a73d0
jle 0x401c98
jmp 0x401cc0
mov dh, byte [esi + 6]
mov bl, byte [esi + 7]
mov edi, 0x161b3d00
mov bh, bl
mov al, dh
xor bh, 1
xor al, bh
xor al, 1
mov dl, al
and dl, bh
or bh, dh
or dh, bl
mov ah, bh
xor dh, 1
xor ah, dl
xor dl, 1
or dl, bh
xor ah, 1
mov ebx, 0xaad0f9ce
xor dl, 1
or dl, ah
mov ah, dh
xor dh, al
and ah, al
or dh, ah
mov al, dh
xor al, dl
xor dl, 1
mov ah, dl
xor dl, dh
and ah, dh
mov dh, al
or dl, ah
xor dh, dl
not dh
test dh, 1
cmovne edi, ebx
test dl, 1
mov edx, 0x161b3d00
cmovne edx, edi
test al, 1
cmovne edx, edi
jmp 0x401c82
mov bl, byte [esi + 0x18]
mov ecx, 0xd38c7019
movzx eax, bl
mov dword [esi + 0x10], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
mov dword [esi + 0x18], eax
nop dword [eax]
cmp ecx, 0xb85950ec
je 0x401db3
cmp ecx, 0x44f23599
je 0x401dd0
cmp ecx, 0xd38c7019
jne 0x401d80
cmp dword [esi + 0x18], 0
mov ecx, 0xb85950ec
mov eax, 0x44f23599
cmove ecx, eax
xor eax, eax
cmp ecx, 0xb85950ec
jne 0x401d88
mov eax, dword [esi + 8]
mov ecx, 0x44f23599
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
cmp ecx, 0xb85950ec
jne 0x401d88
jmp 0x401db3
mov dword [esi + 0x18], eax
sar eax, 0x1f
mov edx, 0x82820d23
mov dword [esi + 0x1c], eax
nop
cmp edx, 0x1a854771
jg 0x401e20
cmp edx, 0x82820d23
je 0x401e32
cmp edx, 0x89a66d8c
jne 0x401de0
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x30]
dec dword [eax]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
mov eax, dword [esi + 0x10]
mov byte [ecx], bl
mov edx, 0x2676ee7f
cmp edx, 0x1a854771
jle 0x401de8
nop dword [eax]
cmp edx, 0x1a854772
je 0x401e56
cmp edx, 0x2676ee7f
jne 0x401de0
jmp 0x401e80
xor ecx, ecx
mov edx, 0x1a854772
cmp ecx, dword [esi + 0x18]
mov ecx, 0
sbb ecx, dword [esi + 0x1c]
mov ecx, 0x89a66d8c
cmovl edx, ecx
cmp edx, 0x1a854771
jle 0x401de8
jmp 0x401e20
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x40], 1
push dword [esi + 0x10]
mov byte [esi + 5], bl
call eax
mov bl, byte [esi + 5]
mov edi, dword [esi + 0xc]
mov edx, 0x2676ee7f
jmp 0x401de0
cmp eax, 0xffffffff
je 0x402260
mov eax, dword [esi + 0x14]
add eax, 0xffffffff
adc edi, 0xffffffff
jmp 0x401b50
mov dword [esi + 0x14], 4
mov eax, edi
jmp 0x40228b
mov eax, ecx
mov ecx, dword [esi + 0x10]
mov ecx, dword [eax + ecx + 0x38]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x40], 1
push 0
push dword [esi + 0x24]
push dword [ebp + 0xc]
call eax
mov edi, dword [esi + 0xc]
xor eax, dword [esi + 0x24]
or eax, edx
jne 0x402260
mov ecx, dword [esi + 0x14]
jmp 0x401ef2
mov ecx, dword [esi + 0x14]
add ecx, 0xffffffff
adc edi, 0xffffffff
cmp eax, 0xffffffff
je 0x402260
cmp ecx, 1
mov eax, edi
mov dword [esi + 0x14], ecx
sbb eax, 0
jl 0x40242d
mov eax, dword [0x495c50]
mov dword [esi + 0xc], edi
lea edx, [eax - 1]
imul edx, eax
mov edi, edx
mov ecx, edx
xor edi, 0x51ad8766
and ecx, 0x850764
and edi, edx
not edx
and edx, 0x51288002
or ecx, edx
mov edx, ecx
xor ecx, 0xff7af89b
xor edx, 0x40500
mov eax, ecx
and eax, 0x87db4aee
and edx, 0x50248500
or edx, eax
mov eax, edi
and edi, 0x7824b511
not eax
or ecx, eax
and eax, 0x87db4aee
or edi, eax
not ecx
mov eax, dword [ebp + 8]
xor edi, edx
or ecx, edi
mov edx, ecx
and ecx, 0x51ad8766
not edx
mov ebx, eax
mov eax, dword [eax]
and edx, 0xae527899
or ecx, edx
mov edx, ecx
mov edi, ecx
xor edx, 1
not edi
mov eax, dword [eax + 4]
and edx, ecx
and edi, 0xfffffffe
and ecx, 1
or ecx, edi
mov edi, edx
and edi, ecx
xor ecx, edx
or ecx, edi
mov dword [esi + 0x10], eax
mov eax, dword [ebx + eax + 0x38]
mov edi, dword [esi + 0xc]
mov edx, ecx
and ecx, 0xd19abcb0
not edx
and edx, 0x2e65434f
or edx, ecx
mov dword [esi + 8], eax
mov eax, 0x6ca61bde
mov ecx, edx
xor edx, 0xd00a10a0
xor ecx, 0x2440000b
and edx, 0xda2f53e4
and ecx, 0x25d0ac1b
or ecx, edx
mov edx, dword [0x495c54]
xor ecx, 0x25d0ac1b
sete cl
setne ch
sete byte [esi + 6]
cmp edx, 0xa
setl dl
setl byte [esi + 7]
mov dh, dl
xor ch, dl
or dh, cl
xor ch, 1
xor dh, 1
or dh, ch
mov ch, dl
xor ch, cl
and cl, ch
and ch, dl
mov dl, cl
and dl, ch
xor ch, cl
mov cl, dh
or ch, dl
not cl
mov dl, ch
and ch, dh
xor dl, 1
or dh, dl
and dl, cl
or dl, ch
mov ecx, 0xaad0f9ce
mov ebx, edx
xor bl, dh
test dl, 1
cmovne ecx, eax
test dh, dh
mov edx, 0xaad0f9ce
cmovne ecx, edx
test bl, 1
mov edx, 0x668a73d1
cmove ecx, eax
nop dword [eax]
cmp edx, 0x668a73d0
jg 0x402090
cmp edx, 0xaad0f9ce
je 0x40211c
cmp edx, 0x161b3d00
jne 0x402050
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x10]
movzx eax, byte [eax + edx + 0x40]
mov edx, ecx
mov byte [esi + 0x18], al
cmp edx, 0x668a73d0
jle 0x402058
nop word cs:[eax + eax]
nop
cmp edx, 0x6ca61bde
je 0x402140
cmp edx, 0x668a73d1
jne 0x402050
movzx edx, byte [esi + 6]
mov dh, byte [esi + 7]
mov bh, dh
mov bl, dl
mov eax, edx
xor bh, 1
xor bl, 1
xor al, dh
or bh, dl
or dl, dh
or bl, dh
xor dl, 1
xor bh, 1
xor bl, 1
or dl, al
mov al, bh
mov ah, dl
and al, bl
xor bl, bh
or bl, al
xor ah, 1
xor bl, 1
mov al, ah
xor al, bl
xor bl, dl
mov edx, 0xaad0f9ce
and al, ah
mov ah, bl
xor ah, al
test bl, 1
mov ebx, 0x161b3d00
cmovne edx, ebx
test al, 1
mov ebx, 0xaad0f9ce
cmove edx, ebx
test ah, 1
mov ebx, 0x161b3d00
cmovne edx, ebx
cmp edx, 0x668a73d0
jle 0x402058
jmp 0x402090
mov edx, 0x161b3d00
cmp edx, 0x668a73d0
jle 0x402058
jmp 0x402090
mov bl, byte [esi + 0x18]
mov ecx, 0xd38c7019
movzx eax, bl
mov dword [esi + 0x10], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
mov dword [esi + 0x18], eax
nop dword [eax]
cmp ecx, 0xb85950ec
je 0x402193
cmp ecx, 0x44f23599
je 0x4021b0
cmp ecx, 0xd38c7019
jne 0x402160
cmp dword [esi + 0x18], 0
mov ecx, 0xb85950ec
mov eax, 0x44f23599
cmove ecx, eax
xor eax, eax
cmp ecx, 0xb85950ec
jne 0x402168
mov eax, dword [esi + 8]
mov ecx, 0x44f23599
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
cmp ecx, 0xb85950ec
jne 0x402168
jmp 0x402193
mov dword [esi + 0x18], eax
sar eax, 0x1f
mov edx, 0x82820d23
mov dword [esi + 0x1c], eax
nop
cmp edx, 0x1a854771
jg 0x402200
cmp edx, 0x82820d23
je 0x402215
cmp edx, 0x89a66d8c
jne 0x4021c0
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x30]
dec dword [eax]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
mov eax, dword [esi + 0x10]
mov byte [ecx], bl
mov edx, 0x2676ee7f
cmp edx, 0x1a854771
jle 0x4021c8
nop dword [eax]
cmp edx, 0x1a854772
je 0x402239
cmp edx, 0x2676ee7f
jne 0x4021c0
jmp 0x401ee0
xor ecx, ecx
mov edx, 0x1a854772
cmp ecx, dword [esi + 0x18]
mov ecx, 0
sbb ecx, dword [esi + 0x1c]
mov ecx, 0x89a66d8c
cmovl edx, ecx
cmp edx, 0x1a854771
jle 0x4021c8
jmp 0x402200
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x40], 1
push dword [esi + 0x10]
mov byte [esi + 5], bl
call eax
mov bl, byte [esi + 5]
mov edi, dword [esi + 0xc]
mov edx, 0x2676ee7f
jmp 0x4021c0
mov eax, 4
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [ecx + eax + 0x24], 0
mov dword [ecx + eax + 0x20], 0
mov eax, ecx
mov dword [esi + 0x40], 0
mov ecx, eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ebx, dword [ecx + eax + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov edi, ebx
mov ecx, ebx
not eax
xor edi, 0x72bcf2aa
and ecx, 0x13f7840d
mov dword [esi + 8], edi
and edi, ebx
not ebx
mov edx, ebx
and edx, 0xec087bf2
or ecx, edx
mov edx, eax
or eax, 0x72bcf2aa
and edx, 0x13f7840d
xor edx, ecx
not edx
or edx, ebx
mov ebx, dword [esi + 8]
and ebx, 0x72bcf2aa
mov ecx, ebx
and ecx, edi
xor edi, ebx
xor ebx, ebx
or edi, ecx
mov ecx, edi
and edi, 0x71768474
not ecx
and ecx, 0x8e897b8b
or edi, ecx
mov ecx, eax
and eax, 0x8c010901
xor ecx, 4
and ecx, 0x70348024
or ecx, eax
mov eax, edx
not eax
xor ecx, edi
mov edi, edx
and edx, 0x57781384
and eax, 0xa887ec7b
or eax, edx
mov edx, ecx
and ecx, 0xa887ec7b
not edx
or edi, edx
and edx, 0x57781384
or ecx, edx
not edi
mov edx, dword [ebp + 8]
xor ecx, eax
mov eax, edi
and eax, ecx
xor ecx, edi
or ecx, eax
mov eax, dword [esi + 0xc]
mov edi, ecx
cmp dword [edx + eax + 0x38], 0
mov eax, ecx
mov dword [esi + 0x40], 0
not eax
mov edx, eax
sete bl
and edx, 0xdae36134
and edi, 0x251c9ecb
or edi, edx
lea edx, [ebx*4 + 0x251c9ecb]
mov dword [esi + 8], ebx
xor edx, edi
mov ebx, edx
xor ebx, eax
and eax, 0xacab201
and ebx, edx
mov edx, ecx
xor edx, 0xbcab2bb
and edx, ecx
and ecx, 0x10000ba
or ecx, eax
mov eax, ecx
xor ecx, 0xfeffff45
xor eax, 0xb2
mov edi, ecx
and edi, 0xb1fab49
and eax, 0xc010b2
or eax, edi
mov edi, edx
and edx, 0xf4e054b6
not edi
or ecx, edi
and edi, 0xb1fab49
or edx, edi
not ecx
xor edx, eax
or ecx, edx
mov edx, dword [esi + 8]
lea eax, [edx*4 + 0xbcab2bb]
lea edx, [edx*4]
xor edx, 0xf4354d44
and edx, ecx
not ecx
and ecx, eax
mov eax, ebx
or edx, ecx
not eax
mov edi, edx
and edx, eax
not edi
or eax, edi
and edi, ebx
not eax
or edi, edx
mov ecx, eax
and ecx, edi
xor edi, eax
mov eax, dword [esi + 0xc]
or edi, ecx
mov ecx, dword [ebp + 8]
add ecx, eax
push 0
push edi
call fcn.0040d280
lea ecx, [esi + 0x28]
call fcn.0040ca00
mov eax, dword [esi + 0x38]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp 0x402265