Function at 0x4304d0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add eax, esi
sub eax, dword [esp + 0x5c]
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x28], eax
cmp eax, esi
jbe 0x43076b
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x2c]
mov eax, ecx
and al, 0xc
mov byte [esp + 3], al
lea edi, [esp + 0x30]
rol edi, 0xd
mov ebx, edi
xor ebx, 0x8b4c2410
mov eax, ebx
and eax, 0xffffbfcf
and edi, 0x30
or edi, eax
xor edi, 0x20
and ecx, 0xc
ror edi, cl
mov dword [esp + 0x20], edi
mov eax, edi
rol eax, cl
lea ecx, [eax + ebx]
mov dword [esp + 0x1c], ebx
and eax, ebx
add eax, eax
sub ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x5c]
lea ebp, [eax - 1]
xor eax, eax
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
jmp 0x4305a7
mov edi, eax
mov ecx, dword [esp + 4]
sub edi, ecx
mov ebx, edi
sar ebx, 2
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
je 0x4305f9
mov edi, ecx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov dword [edi + ebx*4], esi
add eax, 4
mov dword [ecx + 4], eax
add esi, ebp
inc esi
cmp esi, dword [esp + 0x28]
jae 0x43076b
test edx, edx
je 0x4305b0
cmp byte [edx], 0x3f
je 0x4305bb
movzx ecx, byte [esi]
mov ebx, dword [esp + 0x58]
cmp cl, byte [ebx]
jne 0x43059c
cmp dword [esp + 0x5c], 2
jb 0x430570
xor ecx, ecx
jmp 0x4305ec
movzx edx, byte [esi + ecx + 1]
mov ebx, dword [esp + 0x58]
cmp dl, byte [ebx + ecx + 1]
mov edx, dword [esp + 0x60]
jne 0x43067b
inc ecx
cmp ebp, ecx
je 0x430570
test edx, edx
je 0x4305d0
cmp byte [edx + ecx + 1], 0x3f
jne 0x4305d0
jmp 0x4305e7
mov dword [esp + 8], edi
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
add ecx, ebx
cmp ecx, eax
ja 0x43060c
mov ecx, eax
mov eax, 0xffffffff
cmp ecx, 0x40000000
jae 0x430620
lea eax, [ecx*4]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esp + 3]
mov byte [esp + 0x2c], cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword fs:[ecx]
push eax
push 0
push dword [ecx + 0x18]
call dword [0x441dc8]
mov edi, eax
mov eax, dword [esp + 4]
test eax, eax
mov ecx, dword [esp + 0x4c]
je 0x430749
cmp edi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], edi
jae 0x430682
mov ecx, dword [esp + 8]
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
jmp 0x430731
add esi, ecx
jmp 0x43059c
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x430731
mov edx, dword [esp + 4]
lea eax, [edx + ebx]
dec eax
mov ecx, dword [esp + 0x14]
add ecx, ebx
dec ecx
not edx
add edx, dword [esp + 0x10]
and ebx, 7
je 0x4306d1
mov dword [esp + 0x10], edx
neg ebx
xor edi, edi
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
dec edi
cmp ebx, edi
jne 0x4306b0
add eax, edi
add ecx, edi
mov ebx, dword [esp + 8]
add ebx, edi
mov edx, dword [esp + 0x10]
cmp edx, 7
jae 0x4306da
jmp 0x430731
mov ebx, dword [esp + 8]
cmp edx, 7
jb 0x430731
neg ebx
xor edx, edx
nop
nop
mov edi, ebx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
movzx ebx, byte [eax + edx - 1]
mov byte [ecx + edx - 1], bl
movzx ebx, byte [eax + edx - 2]
mov byte [ecx + edx - 2], bl
movzx ebx, byte [eax + edx - 3]
mov byte [ecx + edx - 3], bl
movzx ebx, byte [eax + edx - 4]
mov byte [ecx + edx - 4], bl
movzx ebx, byte [eax + edx - 5]
mov byte [ecx + edx - 5], bl
movzx ebx, byte [eax + edx - 6]
mov byte [ecx + edx - 6], bl
movzx ebx, byte [eax + edx - 7]
mov byte [ecx + edx - 7], bl
mov ebx, edi
add edx, 0xfffffff8
cmp edi, edx
jne 0x4306e0
push dword [esp + 4]
call fcn.0042f370
add esp, 4
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov dword [ecx], edi
lea edx, [edi + ebx*4]
mov eax, dword [esp + 0xc]
lea eax, [edi + eax*4]
mov dword [esp + 0xc], eax
mov dword [ecx + 8], eax
mov eax, edx
mov dword [esp + 4], edi
mov edx, dword [esp + 0x60]
jmp 0x430591
mov eax, dword [esp + 0x4c]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret