Function at 0x40775c
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x508
mov dword [ebp - 0x508], ecx
push 0x20000
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x484], eax
cmp dword [ebp - 0x484], 0
jne 0x4077b4
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax + 0x7a0]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [ebp - 0x508]
mov dword [edx + 0x7a0], 0
mov eax, 0x190
jmp 0x40803f
push 0x20000
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x407814
mov eax, dword [ebp - 0x484]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebp - 0x484], 0
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx + 0x7a0]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x508]
mov dword [eax + 0x7a0], 0
mov eax, 0x190
jmp 0x40803f
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx + 0x7a0]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x414], eax
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax + 0x7a0]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x450], 0
push 0x431608
call fcn.00412e00
add esp, 4
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x418], 0
mov edx, dword [ebp - 0x458]
mov eax, dword [ebp - 0x414]
lea ecx, [eax + edx - 0x20000]
mov dword [ebp - 0x454], ecx
push 0x15
push 0
lea edx, [ebp - 0x43c]
push edx
call fcn.00412470
add esp, 0xc
push 0x15
push 0
lea eax, [ebp - 0x4ac]
push eax
call fcn.00412470
add esp, 0xc
mov dword [ebp - 0x450], 0
cmp dword [ebp - 0x450], 0x1fff0
ja 0x407a2d
jmp 0x4078e1
mov edx, dword [ebp - 0x450]
add edx, 0x10
mov dword [ebp - 0x450], edx
cmp dword [ebp - 0x450], 0x1fff0
ja 0x407a2d
mov eax, dword [ebp - 0x44c]
push eax
push str.ASUS_BROMMAP
mov ecx, dword [ebp - 0x454]
add ecx, dword [ebp - 0x450]
push ecx
call fcn.00412dc0
add esp, 0xc
test eax, eax
jne 0x4079a5
mov dword [ebp - 0x424], 1
mov edx, dword [ebp - 0x454]
add edx, dword [ebp - 0x450]
add edx, dword [ebp - 0x44c]
mov dword [ebp - 0x4bc], edx
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [eax]
and ecx, 0x10000
test ecx, ecx
je 0x407955
mov byte [ebp - 0x43c], 1
mov edx, dword [ebp - 0x4bc]
mov eax, dword [edx + 4]
mov dword [ebp - 0x43b], eax
mov ecx, dword [ebp - 0x4bc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x437], edx
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x433], ecx
mov edx, dword [ebp - 0x4bc]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x42f], eax
mov ecx, dword [ebp - 0x4bc]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x42b], edx
jmp 0x407a28
mov eax, dword [ebp - 0x44c]
push eax
push str.ASUS_NROMMAP
mov ecx, dword [ebp - 0x454]
add ecx, dword [ebp - 0x450]
push ecx
call fcn.00412dc0
add esp, 0xc
test eax, eax
jne 0x407a28
mov dword [ebp - 0x418], 1
mov edx, dword [ebp - 0x454]
add edx, dword [ebp - 0x450]
add edx, dword [ebp - 0x44c]
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x4a7], ecx
mov edx, dword [ebp - 0x4c0]
mov eax, dword [edx + 8]
mov dword [ebp - 0x4a3], eax
mov ecx, dword [ebp - 0x4c0]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x49f], edx
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x49b], ecx
jmp 0x4078d2
cmp dword [ebp - 0x424], 0
jne 0x407ac1
mov edx, dword [ebp - 0x508]
mov eax, dword [edx + 0x7a0]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalSize]
shr eax, 0x10
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c8], 0
jmp 0x407a71
mov ecx, dword [ebp - 0x4c8]
add ecx, 1
mov dword [ebp - 0x4c8], ecx
mov edx, dword [ebp - 0x4c8]
cmp edx, dword [ebp - 0x4c4]
jge 0x407abc
mov eax, dword [ebp - 0x4c8]
shl eax, 0x10
mov ecx, dword [ebp - 0x414]
add ecx, eax
mov dword [ebp - 0x454], ecx
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 0x4b4]
push eax
mov ecx, dword [ebp - 0x508]
call fcn.004076f5
test eax, eax
je 0x407aba
jmp 0x407abc
jmp 0x407a62
jmp 0x407cbf
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d0], 2
cmp dword [ebp - 0x418], 0
je 0x407b4a
mov dword [ebp - 0x4d0], 4
mov ecx, dword [ebp - 0x4a7]
mov dword [ebp - 0x504], ecx
mov edx, dword [ebp - 0x4a3]
mov dword [ebp - 0x500], edx
mov eax, dword [ebp - 0x49f]
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x49b]
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x437]
mov dword [ebp - 0x4f4], edx
mov eax, dword [ebp - 0x433]
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0x42f]
mov dword [ebp - 0x4ec], ecx
mov edx, dword [ebp - 0x42b]
mov dword [ebp - 0x4e8], edx
jmp 0x407b7a
mov eax, dword [ebp - 0x437]
mov dword [ebp - 0x504], eax
mov ecx, dword [ebp - 0x433]
mov dword [ebp - 0x500], ecx
mov edx, dword [ebp - 0x42f]
mov dword [ebp - 0x4fc], edx
mov eax, dword [ebp - 0x42b]
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4dc], 0
jmp 0x407b9f
mov ecx, dword [ebp - 0x4dc]
add ecx, 1
mov dword [ebp - 0x4dc], ecx
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4d0]
jge 0x407cbf
cmp dword [ebp - 0x4e4], 0
jne 0x407cbf
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [ebp + eax*8 - 0x504]
mov dword [ebp - 0x4e0], ecx
mov edx, dword [ebp - 0x4dc]
mov eax, dword [ebp + edx*8 - 0x500]
mov dword [ebp - 0x4cc], eax
cmp dword [ebp - 0x4e0], 0
je 0x407bf6
cmp dword [ebp - 0x4cc], 0
jne 0x407bf8
jmp 0x407b90
or ecx, 0xffffffff
sub ecx, dword [ebp - 0x458]
add ecx, 1
mov edx, dword [ebp - 0x4e0]
sub edx, ecx
mov dword [ebp - 0x4e0], edx
or eax, 0xffffffff
sub eax, dword [ebp - 0x458]
add eax, 1
mov ecx, dword [ebp - 0x4cc]
sub ecx, eax
mov dword [ebp - 0x4cc], ecx
mov edx, dword [ebp - 0x4e0]
mov dword [ebp - 0x4d4], edx
jmp 0x407c4c
mov eax, dword [ebp - 0x4d4]
add eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x4d4], eax
mov ecx, dword [ebp - 0x4d4]
cmp ecx, dword [ebp - 0x4cc]
jae 0x407cba
mov edx, dword [ebp - 0x414]
add edx, dword [ebp - 0x4d4]
mov dword [ebp - 0x454], edx
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x4b4], eax
mov ecx, dword [ebp - 0x4b4]
push ecx
mov ecx, dword [ebp - 0x508]
call fcn.004076f5
mov dword [ebp - 0x4e4], eax
cmp dword [ebp - 0x4e4], 0
je 0x407c9b
jmp 0x407cba
mov edx, dword [ebp - 0x4b4]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x4b4]
mov edx, dword [ecx + 7]
lea eax, [edx + eax + 4]
mov dword [ebp - 0x4d8], eax
jmp 0x407c3a
jmp 0x407b90
mov ecx, dword [ebp - 0x444]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x420], eax
mov edx, dword [ebp - 0x4b4]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x4b4]
mov edx, dword [ecx + 7]
lea eax, [edx + eax + 4]
push eax
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x420]
push edx
call fcn.00412820
add esp, 0xc
mov eax, dword [ebp - 0x444]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx + 0x7a0]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [ebp - 0x48c], 0xc800cd
mov eax, dword [ebp - 0x484]
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], 0
lea edx, [ebp - 0x4b0]
push edx
push 0
push 0
push 0x410
lea eax, [ebp - 0x410]
push eax
mov ecx, dword [ebp - 0x48c]
push ecx
call sub.ASUSBIOS.dll_Ordinal_1
mov dword [ebp - 0x494], eax
cmp dword [ebp - 0x494], 0
jne 0x407d86
mov eax, 0x191
jmp 0x40803f
mov dword [ebp - 0x48c], 0xc800cc
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x4b0]
push ecx
push 0
push 0
push 0x410
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x48c]
push eax
call sub.ASUSBIOS.dll_Ordinal_1
mov ecx, dword [ebp - 0x4b0]
mov dword [ebp - 0x4b8], ecx
mov dword [ebp - 0x48c], 0xc800ce
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x4b0]
push ecx
push 0
push 0
push 0x410
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x48c]
push eax
call sub.ASUSBIOS.dll_Ordinal_1
cmp dword [ebp - 0x4b8], 0
je 0x407e8b
mov ecx, dword [ebp - 0x508]
mov edx, dword [ecx + 0x7a0]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x508]
mov dword [eax + 0x7a0], 0
mov ecx, dword [ebp - 0x484]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x4b8], 0xcc
jne 0x407e5f
mov eax, 0x192
jmp 0x40803f
cmp dword [ebp - 0x4b8], 0xcd
jne 0x407e75
mov eax, 0x193
jmp 0x40803f
cmp dword [ebp - 0x4b8], 0xce
jne 0x407e8b
mov eax, 0x194
jmp 0x40803f
mov edx, dword [ebp - 0x484]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x41c]
add eax, 0x1e0c1
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x440]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x34
jge 0x407edc
mov edx, dword [ebp - 0x440]
push edx
mov eax, dword [ebp - 0x508]
add eax, 0x4d4
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x407ef4
push 0x431638
mov ecx, dword [ebp - 0x508]
add ecx, 0x4d4
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0x41c]
add edx, 0x1ece0
mov dword [ebp - 0x448], edx
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x488], 0
jmp 0x407f2b
mov eax, dword [ebp - 0x488]
add eax, 1
mov dword [ebp - 0x488], eax
cmp dword [ebp - 0x488], 8
jge 0x407fbf
mov ecx, dword [ebp - 0x448]
add ecx, dword [ebp - 0x488]
movsx edx, byte [ecx]
test edx, edx
je 0x407f5f
mov eax, dword [ebp - 0x448]
add eax, dword [ebp - 0x488]
movsx ecx, byte [eax]
cmp ecx, 0x20
jne 0x407f61
jmp 0x407fbf
mov edx, dword [ebp - 0x448]
add edx, dword [ebp - 0x488]
movsx eax, byte [edx]
cmp eax, 0x3c
je 0x407f89
mov ecx, dword [ebp - 0x448]
add ecx, dword [ebp - 0x488]
movsx edx, byte [ecx]
cmp edx, 0x3e
jne 0x407f8b
jmp 0x407f1c
mov eax, dword [ebp - 0x508]
add eax, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x448]
add ecx, dword [ebp - 0x488]
mov dl, byte [ecx]
mov byte [eax + 0x592], dl
mov eax, dword [ebp - 0x490]
add eax, 1
mov dword [ebp - 0x490], eax
jmp 0x407f1c
mov ecx, dword [ebp - 0x508]
add ecx, dword [ebp - 0x490]
mov byte [ecx + 0x592], 0
mov edx, dword [ebp - 0x41c]
add edx, 0x1ec70
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x508]
add eax, 0x6cc
push eax
mov ecx, dword [ebp - 0x508]
add ecx, 0x538
push ecx
mov edx, dword [ebp - 0x508]
add edx, 0x592
push edx
lea eax, [ebp - 0x480]
push eax
mov ecx, dword [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 0x508]
call fcn.00408043
mov edx, dword [ebp - 0x484]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 0x484]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
mov esp, ebp
pop ebp
ret