Function at 0x429ff0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + 0x14]
mov edx, eax
and edx, 0x3f
cmp dl, 1
je 0x42a040
and eax, 0x3f
mov dword [esp + 8], str.invalid_hash_type__d_in_cpp_macro_definition
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0042e3a0
add esp, 0x2c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x44]
test byte [ecx + 0x15], 1
jne 0x42a110
mov eax, dword [esp + 0x44]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 4]
movzx ebp, byte [esi + 0x14]
lea ebx, [eax + eax*4]
add ebx, ebx
test ebp, 1
je 0x42a2f4
movzx ecx, word [esi + 0x10]
add ebx, 6
test ecx, ecx
je 0x42a091
mov edi, dword [esi]
xor eax, eax
lea esi, [esi]
mov edx, dword [edi + eax*4]
add eax, 1
cmp eax, ecx
mov edx, dword [edx + 4]
lea ebx, [ebx + edx + 1]
jne 0x42a080
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x261], 0
jne 0x42a144
and ebp, 0x20
jne 0x42a32b
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42a14e
xor ebp, ebp
jmp 0x42a0f3
mov eax, dword [edi + 0xc]
add ebx, dword [eax + 4]
movzx eax, word [edi + 6]
mov edx, eax
and edx, 4
cmp dx, 1
sbb ebx, 0xffffffff
test al, 8
lea edx, [ebx + 3]
cmovne ebx, edx
and eax, 1
cmp ax, 1
sbb ebx, 0xffffffff
add ebp, 1
cmp ebp, dword [esp + 0x1c]
je 0x42a14e
mov edi, dword [esi + 4]
mov edx, ebp
shl edx, 4
add edi, edx
cmp byte [edi + 4], 0x4e
je 0x42a0c2
mov dword [esp], edi
call fcn.0042b680
add ebx, eax
jmp 0x42a0c8
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x224]
test edx, edx
je 0x42a009
mov eax, dword [esp + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], eax
call edx
test al, al
jne 0x42a04e
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + 0x14]
jmp 0x42a009
mov dword [esp], esi
call fcn.0043b550
add ebx, eax
mov eax, dword [esp + 0x40]
cmp ebx, dword [eax + 0x114]
ja 0x42a300
mov eax, dword [eax + 0x110]
mov ecx, dword [esp + 0x44]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042b6c0
test byte [esi + 0x14], 1
je 0x42a1e1
lea edi, [eax + 1]
mov byte [eax], 0x28
movzx eax, word [esi + 0x10]
xor ebx, ebx
lea esi, [esi]
lea edi, [edi]
cmp ebx, eax
jae 0x42a1db
mov edx, dword [esi]
mov ecx, dword [esp + 0x40]
mov ebp, dword [edx + ebx*4]
cmp ebp, dword [ecx + 0x2a8]
je 0x42a1c2
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
add edi, dword [ebp + 4]
movzx eax, word [esi + 0x10]
add ebx, 1
cmp ebx, eax
jae 0x42a2b0
mov byte [edi], 0x2c
movzx eax, word [esi + 0x10]
add edi, 1
cmp ebx, eax
jb 0x42a194
lea eax, [edi + 1]
mov byte [edi], 0x29
lea edi, [eax + 1]
mov byte [eax], 0x20
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x261], 0
jne 0x42a2d1
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x42a2df
test byte [esi + 0x14], 0x20
mov ebx, dword [esi + 4]
jne 0x42a360
xor ebp, ebp
mov eax, ebp
mov ebp, esi
mov esi, eax
jmp 0x42a262
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0042b720
mov edi, eax
test byte [ebx + 6], 8
je 0x42a252
mov byte [edi], 0x20
mov byte [edi + 1], 0x23
add edi, 3
mov byte [edi - 1], 0x23
add esi, 1
cmp esi, dword [esp + 0x1c]
jae 0x42a2df
mov ebx, dword [ebp + 4]
mov eax, esi
shl eax, 4
add ebx, eax
movzx eax, word [ebx + 6]
test al, 1
je 0x42a27b
mov byte [edi], 0x20
movzx eax, word [ebx + 6]
add edi, 1
test al, 4
je 0x42a285
mov byte [edi], 0x23
add edi, 1
cmp byte [ebx + 4], 0x4e
jne 0x42a220
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0xc]
add edi, dword [eax + 4]
jmp 0x42a23e
test byte [esi + 0x14], 2
je 0x42a190
mov byte [edi], 0x2e
mov byte [edi + 1], 0x2e
add edi, 3
mov byte [edi - 1], 0x2e
movzx eax, word [esi + 0x10]
jmp 0x42a190
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0043b5b0
mov edi, eax
mov eax, dword [esp + 0x40]
mov byte [edi], 0
mov eax, dword [eax + 0x110]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
add ebx, 2
jmp 0x42a091
mov eax, dword [esp + 0x40]
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x110]
mov dword [esp], eax
call fcn.004444f0
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x110], eax
mov dword [ecx + 0x114], ebx
jmp 0x42a164
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x42a397
mov eax, dword [esi + 4]
cmp byte [eax + 4], 0x26
je 0x42a14e
add eax, 0x10
xor edi, edi
add edi, 1
cmp edi, ecx
je 0x42a397
movzx edx, byte [eax + 4]
add eax, 0x10
cmp dl, 0x26
jne 0x42a344
mov dword [esp + 0x1c], edi
jmp 0x42a0b2
cmp byte [ebx + 4], 0x26
je 0x42a2df
mov ebp, dword [esp + 0x1c]
lea edx, [ebx + 0x10]
xor eax, eax
add eax, 1
cmp ebp, eax
je 0x42a397
movzx ecx, byte [edx + 4]
add edx, 0x10
cmp cl, 0x26
jne 0x42a373
test eax, eax
je 0x42a2df
mov dword [esp + 0x1c], eax
jmp 0x42a214
call sub.msvcrt.dll_abort
nop
nop
nop
nop
push ebx
mov ecx, dword [esp + 8]
mov edx, 0xffffffff
mov eax, edx
movq mm5, qword [str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r________________]
movq mm4, qword [0x4b7090]
mov ebx, ecx
and ecx, 7
movq mm3, qword [0x4b70a0]
and ebx, 0xfffffff8
movq mm2, qword [0x4b70b0]
shl eax, cl
movq mm0, qword [ebx]
jmp 0x42a3eb
add ebx, 8
movq mm0, qword [ebx]
mov eax, 0xffffffff
movq mm6, mm0
movq mm1, mm0
pcmpeqb mm6, mm5
pcmpeqb mm1, mm4
por mm1, mm6
movq mm6, mm0
pcmpeqb mm0, mm2
pcmpeqb mm6, mm3
por mm1, mm6
por mm0, mm1
pmovmskb edx, mm0
and edx, eax
je 0x42a3e0
emms
tzcnt edx, edx
lea eax, [ebx + edx]
pop ebx
ret