Function at 0x424240
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov eax, dword [0x4a19f4]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
push ebx
mov ebx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebx + 0xc]
push esi
push edi
add eax, 0x10
mov edi, 3
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], edi
cmp eax, dword [ebx + 8]
jae 0x424283
cmp eax, 0x48a938
je 0x424283
cmp dword [eax + 8], 6
je 0x42429b
mov eax, dword [0x48aa60]
push eax
mov edi, 2
mov esi, ebx
call fcn.0041f8a0
mov edi, dword [ebp - 0x70]
add esp, 4
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
add eax, 0x20
cmp eax, ecx
jae 0x424392
cmp eax, 0x48a938
je 0x424392
cmp dword [eax + 8], 0
jle 0x424392
cmp eax, ecx
jb 0x4242ca
mov eax, 0x48a938
mov ecx, dword [eax + 8]
cmp ecx, 4
je 0x424318
cmp ecx, 7
jne 0x4242e4
mov ecx, dword [eax]
cmp dword [ecx + 8], 0
jne 0x4242e4
lea eax, [ecx + 0x18]
jmp 0x42431d
mov esi, eax
mov edi, ebx
call fcn.0042f140
test eax, eax
jne 0x4242f6
mov dword [ebp - 0x68], eax
jmp 0x424324
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x424308
mov eax, ebx
call fcn.0042ef10
mov eax, dword [ebx + 0xc]
add eax, 0x20
cmp eax, dword [ebx + 8]
jb 0x424318
mov eax, 0x48a938
mov eax, dword [eax]
add eax, 0x10
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x42433d
mov edx, dword [0x48aa58]
push edx
mov edi, 3
mov esi, ebx
call fcn.0041f8a0
mov eax, dword [ebp - 0x68]
add esp, 4
mov dword [ebp - 0x64], eax
mov eax, dword [ebx + 0xc]
add eax, 0x20
mov esi, 0x48a938
cmp eax, dword [ebx + 8]
jae 0x424352
mov esi, eax
mov eax, dword [esi + 8]
add eax, 0xfffffffd
cmp eax, 4
ja case.0x42435d.6
jmp dword [eax*4 + 0x4249c0]
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
jmp 0x42438f
mov ecx, dword [esi]
mov eax, dword [ecx + 0x10]
jmp 0x42438f
mov eax, dword [esi]
call fcn.0042d3f0
jmp 0x42438f
mov edi, ebx
call fcn.0042f140
test eax, eax
je case.0x42435d.6
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
jmp 0x42438f
xor eax, eax
lea edi, [eax + 1]
push 0x34
call fcn.00463212
push 0x34
mov esi, eax
push 0
push esi
mov dword [ebp - 0x78], esi
call fcn.0046a5d0
push edi
call fcn.00463212
push edi
mov dword [esi + 0x18], eax
call fcn.00463212
add esp, 0x18
cmp dword [ebp + 0x10], 0
mov dword [esi + 0x14], eax
jne 0x4243cb
mov dword [esi + 4], ebx
jmp 0x42448f
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add ecx, 0x10
mov dword [ebp - 0x68], 0
cmp ecx, eax
jb 0x4243e4
mov ecx, 0x48a938
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, ebx
add dword [ecx + 8], 0x10
push 0
xor edx, edx
call fcn.004417f0
mov edi, dword [ebp - 0x6c]
push 0xffffffffffffffff
lea ebx, [ebp - 0x68]
mov eax, edi
call fcn.0041cfb0
mov ebx, dword [ebp - 0x68]
push ebx
mov dword [ebp - 0x70], eax
call fcn.00463212
mov edx, dword [ebp - 0x70]
push ebx
push edx
push eax
mov dword [esi + 0x20], eax
call fcn.0046cbb0
mov dword [esi + 0x24], ebx
add dword [edi + 8], 0xffffffe0
mov ecx, dword [edi + 0x38]
mov ebx, dword [edi + 8]
add esp, 0x18
test ecx, ecx
je 0x42448f
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 0x60]
push ecx
call fcn.0042d070
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [eax + 8]
mov dword [ebx + 8], eax
add dword [edi + 8], 0x10
push 0xffffffffffffffff
lea ebx, [ebp - 0x70]
mov eax, edi
call fcn.0041cfb0
mov ebx, dword [ebp - 0x70]
push ebx
mov esi, eax
call fcn.00463212
mov ecx, dword [ebp - 0x78]
push ebx
push esi
push eax
mov dword [ecx + 0x28], eax
call fcn.0046cbb0
mov esi, dword [ebp - 0x78]
add esp, 0x18
add dword [edi + 8], 0xfffffff0
mov eax, dword [esi + 0x18]
mov edi, dword [ebp - 0x64]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x68], eax
mov al, byte [edi]
mov dword [ebp - 0x7c], edx
cmp al, 0x66
je 0x4244a8
cmp al, 0x64
jne 0x4244b9
mov ecx, dword [ebp - 0x6c]
push str.Callback_must_return_an_integer_or_pointer_
push ecx
call fcn.0041f9b0
add esp, 8
mov al, byte [edi]
test al, al
je 0x4244d3
nop
cmp al, 0x28
je 0x424574
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4244c0
mov dword [ebp - 0x64], edi
cmp byte [edi], 0x28
je 0x424577
mov edi, dword [ebp - 0x6c]
call fcn.004228a0
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x28]
cmp eax, ecx
jbe 0x42454d
sub eax, ecx
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 8], eax
push 0x48be10
lea eax, [ebp - 0x60]
call fcn.0043c9a0
mov eax, dword [ebp - 0x5c]
add esp, 4
test eax, eax
jne 0x424525
mov eax, 0x48bc3c
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x64]
push edx
push 2
push eax
push str._nCalling:_s_nBad_argument:__d_n_s
push edi
call fcn.0041f9b0
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00461231
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x64]
push ecx
push 2
push str._nBad_argument:__d__s
push edi
call fcn.0041f9b0
add esp, 0x10
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00461231
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x64], edi
mov bl, byte [edi]
test bl, bl
je 0x424694
cmp bl, 0x29
je 0x424694
movzx eax, bl
sub eax, 0x26
je 0x424681
sub eax, 2
je 0x4245a4
sub eax, 4
jne 0x424688
inc edi
lea eax, [ebp - 0x64]
mov dword [ebp - 0x64], edi
push eax
lea edi, [ebp - 0x71]
call fcn.004226f0
mov bl, al
add esp, 4
test bl, bl
je 0x424691
cmp bl, 0x29
je 0x4245d1
cmp bl, 0x76
jne 0x4245e4
cmp byte [ebp - 0x71], 0x64
jne 0x4245f1
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x78]
mov bl, byte [edi + 1]
inc edi
test bl, bl
jne 0x424581
jmp 0x424694
cmp bl, 0x50
je 0x4245ee
cmp bl, 0x53
jne 0x4245f1
add bl, 0x20
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x68]
movsx eax, bl
add eax, 0xffffffbe
mov byte [ecx], bl
mov byte [edx], bl
cmp eax, 0x37
ja case.0x42460d.67
movzx eax, byte [eax + 0x4249ec]
jmp dword [eax*4 + 0x4249d4]
mov eax, 1
jmp 0x424662
mov eax, 2
jmp 0x424662
mov eax, 4
jmp 0x424662
mov eax, 8
jmp 0x424662
mov dword [ebp - 0x70], 0
jmp 0x424640
mov dword [ebp - 0x70], 0xffffffff
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x6c]
call fcn.004228a0
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, edi
push str.callback_:__struct_error_..._s
push edx
call fcn.0041f9b0
mov eax, dword [ebp - 0x70]
add esp, 0xc
mov esi, dword [ebp - 0x78]
add eax, 3
shr eax, 2
add dword [ebp - 0x80], eax
mov eax, 1
add dword [ebp - 0x68], eax
add dword [ebp - 0x7c], eax
sub dword [ebp - 0x64], eax
mov edi, dword [ebp - 0x64]
jmp 0x424688
mov eax, dword [ebp - 0x7c]
mov byte [eax - 1], 0x26
test bl, bl
je 0x424694
jmp 0x4245d7
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x68]
mov byte [eax], 0
mov byte [ecx], 0
mov ecx, dword [esi + 0x14]
sub eax, ecx
lea edi, [eax + 1]
push edi
push ecx
call fcn.00464828
mov ebx, dword [ebp - 0x6c]
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], edi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
add eax, 0x10
add esp, 8
cmp eax, ecx
jb 0x4246cd
mov eax, 0x48a938
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [ebx + 8], 0x10
push 0xffffd8f0
mov eax, ebx
call fcn.004210a0
mov dword [esi + 8], eax
mov ecx, dword [ebx + 0x10]
add esp, 4
cmp dword [ecx + 0x110], 0
jne 0x424785
lea edx, [ebp - 0xa4]
push edx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov eax, dword [ebp - 0xa0]
push 0x40
push 0x1000
push eax
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov edx, dword [ebx + 0x10]
mov ecx, eax
mov eax, dword [edx + 0x10c]
test eax, eax
jne 0x42473f
mov dword [edx + 0x10c], ecx
jmp 0x42474d
cmp dword [eax], 0
je 0x42474b
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x424744
mov dword [eax], ecx
mov dword [ecx], 0
mov eax, dword [ebx + 0x10]
add ecx, 4
mov dword [eax + 0x110], ecx
lea eax, [edi - 0x1b]
cmp eax, 0x17
jbe 0x42477f
lea edx, [eax - 0x18]
mov eax, 0xb21642c9
mul edx
shr edx, 4
inc edx
dec edx
lea eax, [ecx + 0x17]
mov dword [ecx], eax
mov ecx, eax
jne 0x424775
mov dword [ecx], 0
cmp dword [ebp + 8], 0
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x110]
mov dword [esi], ecx
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x110]
mov ecx, dword [edx]
mov dword [eax + 0x110], ecx
je 0x42483c
cmp dword [esi], 0
jne 0x4247be
push str.tocdecl_failed_
push ebx
call fcn.0041f9b0
add esp, 8
mov eax, dword [esi]
mov byte [eax], 0xe8
movzx ecx, byte [eax]
cmp ecx, 0xe8
jl 0x4247fa
cmp ecx, 0xe9
jle 0x4247ed
cmp ecx, 0xeb
jne 0x4247fa
mov edx, 0x424020
sub dl, al
sub dl, 2
mov byte [eax + 1], dl
jmp 0x4247fa
mov ecx, 0x424020
sub ecx, eax
sub ecx, 5
mov dword [eax + 1], ecx
mov dword [eax + 5], 0x424000
lea edx, [esi + 4]
mov dword [eax + 9], edx
mov byte [eax + 0xd], 0xbc
mov dword [eax + 0xe], 0
mov byte [eax + 0x12], 0xe9
push esi
mov dword [eax + 0x13], 0
call fcn.00424040
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00461231
mov esp, ebp
pop ebp
ret
cmp dword [esi], 0
jne 0x42484f
push str.tostdcall_failed_
push ebx
call fcn.0041f9b0
add esp, 8
mov eax, dword [esi]
mov ecx, dword [ebp - 0x80]
mov byte [eax], 0x58
inc eax
cmp dword [ebp + 0xc], 0
je 0x424873
cmp ecx, 1
jle 0x42486d
mov word [eax], 0x5152
add eax, 2
jmp 0x424873
jne 0x424873
mov byte [eax], 0x51
inc eax
mov byte [eax], 0x68
lea edx, [esi + 4]
mov dword [eax + 1], edx
mov byte [eax + 5], 0x50
add eax, 6
mov byte [eax], 0xe9
cmp ecx, 0x14
ja case.default.0x42488f
jmp dword [ecx*4 + 0x424a24]
mov ecx, 0x423d80
jmp 0x42492d
mov ecx, 0x423da0
jmp 0x42492d
mov ecx, 0x423dc0
jmp 0x42492d
mov ecx, 0x423de0
jmp 0x42492d
mov ecx, 0x423e00
jmp 0x42492d
mov ecx, 0x423e20
jmp 0x42492d
mov ecx, 0x423e40
jmp 0x42492d
mov ecx, 0x423e60
jmp 0x42492d
mov ecx, 0x423e80
jmp 0x42492d
mov ecx, 0x423ea0
jmp 0x42492d
mov ecx, 0x423ec0
jmp 0x42492d
mov ecx, 0x423ee0
jmp 0x42492d
mov ecx, 0x423f00
jmp 0x42492d
mov ecx, 0x423f20
jmp 0x42492d
mov ecx, 0x423f40
jmp 0x42492d
mov ecx, 0x423f60
jmp 0x42492d
mov ecx, 0x423f80
jmp 0x42492d
mov ecx, 0x423fa0
jmp 0x42492d
mov ecx, 0x423fc0
jmp 0x42492d
mov ecx, 0x423fe0
jmp 0x42492d
mov ecx, 0x423d60
movzx edx, byte [eax]
cmp edx, 0xe8
jl 0x424977
cmp edx, 0xe9
jle 0x42496f
cmp edx, 0xeb
jne 0x424977
sub cl, al
sub cl, 2
push esi
mov byte [eax + 1], cl
call fcn.00424040
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00461231
mov esp, ebp
pop ebp
ret
sub ecx, eax
sub ecx, 5
mov dword [eax + 1], ecx
push esi
call fcn.00424040
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00461231
mov esp, ebp
pop ebp
ret
mov edi, ebx
call fcn.004228a0
push str.argument_list_too_long
push edi
call fcn.0041f9b0
mov ecx, dword [ebp - 4]
add esp, 8
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00461231
mov esp, ebp
pop ebp
ret