Function at 0x423c80
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x507080
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov al, byte [esp + 0x2c]
push ebx
push esi
xor esi, esi
cmp al, 3
mov dword [esp + 0x1c], esi
jne 0x423dea
mov al, byte [esp + 0x38]
mov ebx, 1
cmp al, bl
jne 0x42436f
mov al, byte [0x572430]
test bl, al
jne 0x423ce7
mov cl, al
push 0x57242c
or cl, bl
mov byte [0x572430], cl
call fcn.004ac920
push 0x4243c0
call fcn.004be617
add esp, 8
mov al, byte [0x572430]
test al, 2
jne 0x423d24
or al, 2
mov byte [0x572430], al
lea eax, [esp + 0x10]
push eax
call fcn.004ab6d0
push eax
mov dword [esp + 0x30], esi
call fcn.004a7740
add esp, 8
lea ecx, [esp + 0x10]
mov dword [0x572428], eax
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov ecx, dword [0x56b44c]
mov dword [esp + 8], ecx
mov edx, dword [0x572428]
lea eax, [esp + 8]
push edx
push 0x55d6f0
push eax
mov dword [esp + 0x34], ebx
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x38]
push 0x5705d0
call fcn.004e1e9b
lea ecx, [esp + 0x10]
push 7
push ecx
mov ecx, 0x57242c
mov byte [esp + 0x30], 2
call fcn.004d6f0d
mov edx, dword [eax]
mov eax, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x40]
push 0x55d690
push ecx
mov byte [esp + 0x38], 3
call fcn.004d736f
add esp, 0x10
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 2
call fcn.004e1e27
push 0x2d
push 4
lea ecx, [esp + 0x40]
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], bl
call fcn.004e1e27
lea ecx, [esp + 8]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
cmp al, 0x20
jne 0x423f01
cmp byte [esp + 0x38], 0x21
jne 0x42436f
lea eax, [esp + 0x10]
push eax
call fcn.00429ae0
add esp, 4
mov al, byte [0x572430]
mov ebx, 4
test bl, al
mov dword [esp + 0x28], ebx
jne 0x423e50
mov cl, al
or cl, bl
mov byte [0x572430], cl
lea ecx, [esp + 0x34]
push ecx
call fcn.004ab6d0
push eax
mov byte [esp + 0x30], 5
call fcn.004a7740
add esp, 8
lea ecx, [esp + 0x34]
mov dword [0x572424], eax
mov byte [esp + 0x28], bl
call fcn.004e1e27
mov edx, dword [0x56b44c]
mov dword [esp + 8], edx
mov eax, dword [0x572424]
lea ecx, [esp + 8]
push eax
push 0x55d6f0
push ecx
mov byte [esp + 0x34], 6
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x38]
push 0x5705d0
call fcn.004e1e9b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x40]
push 0x55d690
push ecx
mov byte [esp + 0x38], 7
call fcn.004d736f
add esp, 0x10
lea ecx, [esp + 0x38]
push 0x2b
push ebx
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 6
call fcn.004e1e27
lea ecx, [esp + 8]
mov byte [esp + 0x28], bl
call fcn.004e1e27
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
cmp al, 0x23
jne 0x42406d
cmp byte [esp + 0x38], 0x24
jne 0x42436f
lea eax, [esp + 0x10]
push eax
call fcn.00429ae0
add esp, 4
mov al, byte [0x572430]
mov dword [esp + 0x28], 8
test al, 8
jne 0x423f54
mov bl, al
push 0x572420
or bl, 8
mov byte [0x572430], bl
call fcn.004ac920
push 0x4243b0
call fcn.004be617
add esp, 8
mov cl, byte [0x572430]
mov al, 0x10
test al, cl
jne 0x423f93
or cl, al
mov byte [0x572430], cl
lea ecx, [esp + 0x34]
push ecx
call fcn.004ab6d0
push eax
mov byte [esp + 0x30], 9
call fcn.004a7740
add esp, 8
lea ecx, [esp + 0x34]
mov dword [0x57241c], eax
mov byte [esp + 0x28], 8
call fcn.004e1e27
mov edx, dword [0x56b44c]
mov dword [esp + 8], edx
mov eax, dword [0x57241c]
lea ecx, [esp + 8]
push eax
push 0x55d6f0
push ecx
mov byte [esp + 0x34], 0xa
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x38]
push 0x5705d0
call fcn.004e1e9b
lea edx, [esp + 0x18]
mov bl, 0xb
push 7
push edx
mov ecx, 0x572420
mov byte [esp + 0x30], bl
call fcn.004d6f0d
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
push eax
push ecx
push edx
lea eax, [esp + 0x44]
push 0x55d62c
push eax
mov byte [esp + 0x3c], 0xc
call fcn.004d736f
add esp, 0x14
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], bl
call fcn.004e1e27
push 0x2d
push 4
lea ecx, [esp + 0x40]
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 0xa
call fcn.004e1e27
lea ecx, [esp + 8]
mov byte [esp + 0x28], 8
call fcn.004e1e27
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
cmp al, 2
jne 0x42410e
cmp byte [esp + 0x38], 1
jne 0x42436f
lea edx, [esp + 0x10]
push edx
call fcn.00429940
add esp, 4
mov ebx, 0xd
push 0x5705d0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x2c], ebx
call fcn.004e1e9b
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x38]
push eax
push 0x55d5d0
push ecx
mov byte [esp + 0x34], 0xe
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x38]
push 0x2a
push 4
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], bl
call fcn.004e1e27
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
mov ebx, 1
cmp al, bl
jne 0x42436f
mov al, byte [esp + 0x38]
cmp al, 2
jne 0x424280
lea eax, [esp + 0x10]
push eax
call fcn.00429940
add esp, 4
mov al, byte [0x572430]
mov dword [esp + 0x28], 0xf
test al, 0x20
jne 0x424167
mov bl, al
push 0x572418
or bl, 0x20
mov byte [0x572430], bl
call fcn.004ac920
push 0x4243a0
call fcn.004be617
add esp, 8
mov cl, byte [0x572430]
mov al, 0x40
test al, cl
jne 0x4241a6
or cl, al
mov byte [0x572430], cl
lea ecx, [esp + 0x34]
push ecx
call fcn.004ab6d0
push eax
mov byte [esp + 0x30], 0x10
call fcn.004a7740
add esp, 8
lea ecx, [esp + 0x34]
mov dword [0x572414], eax
mov byte [esp + 0x28], 0xf
call fcn.004e1e27
mov edx, dword [0x56b44c]
mov dword [esp + 8], edx
mov eax, dword [0x572414]
lea ecx, [esp + 8]
push eax
push 0x55d6f0
push ecx
mov byte [esp + 0x34], 0x11
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x38]
push 0x5705d0
call fcn.004e1e9b
lea edx, [esp + 0x18]
mov bl, 0x12
push 7
push edx
mov ecx, 0x572418
mov byte [esp + 0x30], bl
call fcn.004d6f0d
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
push eax
push ecx
push edx
lea eax, [esp + 0x44]
push 0x55d62c
push eax
mov byte [esp + 0x3c], 0x13
call fcn.004d736f
add esp, 0x14
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], bl
call fcn.004e1e27
push 0x2d
push 4
lea ecx, [esp + 0x40]
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 0x11
call fcn.004e1e27
lea ecx, [esp + 8]
mov byte [esp + 0x28], 0xf
call fcn.004e1e27
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
cmp al, bl
jne 0x42436f
lea edx, [esp + 0x14]
push edx
call fcn.004ac920
lea eax, [esp + 0x20]
mov ebx, 0x14
push eax
mov dword [esp + 0x30], ebx
call fcn.004ab6d0
push eax
mov byte [esp + 0x34], 0x15
call fcn.004a7740
add esp, 0xc
lea ecx, [esp + 0x1c]
mov esi, eax
mov byte [esp + 0x28], bl
call fcn.004e1e27
mov ecx, dword [0x56b44c]
mov dword [esp + 0xc], ecx
push esi
lea edx, [esp + 0x10]
push 0x55d6f0
push edx
mov byte [esp + 0x34], 0x16
call fcn.004d736f
add esp, 0xc
lea ecx, [esp + 0x34]
push 0x5705d0
call fcn.004e1e9b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
push eax
push ecx
lea edx, [esp + 0x3c]
push 0x55d560
push edx
mov byte [esp + 0x38], 0x17
call fcn.004d736f
add esp, 0x10
lea ecx, [esp + 0x34]
push 0x2e
push 4
call fcn.004e23f7
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.004e1b94
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 0x16
call fcn.004e1e27
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], bl
call fcn.004e1e27
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e1e27
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret
mov esi, dword [esp + 0x30]
push 0x55d530
mov ecx, esi
call fcn.004e1ef0
mov ecx, dword [esp + 0x20]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x24
ret