Function at 0x40b704
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x54
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov dword [esp + 0x44], eax
mov ebp, str.0123456789
mov eax, dword [ebp]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x30], eax
movzx eax, word [ebp + 8]
mov word [esp + 0x34], ax
movzx eax, byte [ebp + 0xa]
mov byte [esp + 0x36], al
mov ebp, 0x4254dc
mov esi, dword [ebp]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp + 0x10]
mov byte [esp + 0x1c], al
cmp edi, 0xa
jne 0x40b782
fld qword [0x425530]
fstp qword [esp]
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x40b798
cmp edi, 0x10
jne 0x40b800
fld qword [0x425538]
fstp qword [esp]
lea eax, [esp + 0xc]
mov dword [esp + 0x28], eax
test ebx, ebx
jbe 0x40b7c8
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40b7c8
lea eax, [ebx - 1]
push eax
push 0x30
mov ebp, dword [esp + 0x44]
push ebp
mov dword [esp + 0x14], ecx
call fcn.0041d778
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov byte [ebx + eax - 1], 0
test ecx, ecx
je 0x40b7e3
jbe 0x40b7e3
mov ebp, dword [esp + 0x44]
xor eax, eax
mov esi, dword [ebp + eax*4]
add eax, 1
test esi, esi
jne 0x40b80a
cmp eax, ecx
jb 0x40b7d4
test ebx, ebx
jbe 0x40b7f3
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40b7f3
mov byte [eax + 1], 0
mov eax, 1
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, ecx
shl eax, 5
shr eax, 3
mov dword [esp + 0x50], eax
push 1
push eax
mov dword [esp + 0x10], ecx
call dword [sym.imp.MSVCRT.dll_calloc]
mov ecx, dword [esp + 0x10]
add esp, 8
mov esi, eax
test esi, esi
je 0x40bb9e
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40b85a
test ecx, ecx
je 0x40b85a
lea ebp, [ecx - 1]
je 0x40b85a
mov edx, eax
mov eax, dword [edx + ebp*4]
test eax, eax
jne 0x40bb5f
add ebp, 0xffffffff
cmp ebp, 0xffffffff
jne 0x40b847
xor ebp, ebp
mov eax, dword [esp + 0x50]
add ebp, 7
shr ebp, 3
lea edx, [eax - 1]
test ecx, ecx
jbe 0x40bb52
test edx, edx
jl 0x40b908
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x4c], edi
xor eax, eax
mov edi, dword [esi + eax*4]
test edx, edx
jl 0x40bb36
mov esi, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov dword [esp + 8], ecx
xor ebp, ebp
mov ecx, ebp
mov ebp, dword [esp + 0x40]
mov eax, edi
shr eax, cl
add ecx, 8
mov byte [edx + esi], al
add edx, 0xffffffff
js 0x40bb2d
cmp ecx, 0x20
jl 0x40b8aa
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
add eax, 1
cmp eax, ecx
jb 0x40b88b
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
lea ecx, [edx + 1]
cmp ecx, 0xc80
jle 0x40bb17
push ecx
push 0
mov eax, edx
neg eax
add edx, esi
add eax, edx
push eax
call fcn.0041d778
add esp, 0xc
fldz
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
shr ebp, 0x1f
fadd qword [ebp*8 + 0x425510]
fmul qword [esp]
fcom st(1)
fnstsw ax
sahf
jp 0x40b928
jb 0x40b969
fld st(0)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp qword [esp + 0x20]
fldcw word [esp]
fild dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ebp, ecx
shr ebp, 0x1f
fadd qword [ebp*8 + 0x425510]
lea ebp, [ecx + 1]
fsubp st(1)
fcompp
fnstsw ax
sahf
ja 0x40b96f
mov ebp, ecx
jmp 0x40b96f
fstp st(0)
fstp st(0)
xor ebp, ebp
push 1
push ebp
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
test eax, eax
je 0x40bae3
mov edx, dword [esp + 0x50]
test edx, edx
je 0x40b9f0
mov dword [esp], ebx
mov dword [esp + 0x4c], edi
xor ecx, ecx
movzx edi, byte [ecx + esi]
test ebp, ebp
jbe 0x40bacf
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
lea ebx, [eax + ebp]
mov ebp, eax
mov eax, edi
movzx edx, byte [ebx - 1]
shl edx, 8
add edx, eax
mov eax, edx
xor edx, edx
div esi
mov byte [ebx - 1], dl
add ebx, 0xffffffff
cmp ebp, ebx
jb 0x40b9b7
mov edx, dword [esp + 0x50]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x48]
mov eax, ebp
add ecx, 1
mov ebp, dword [esp + 0x44]
cmp ecx, edx
jb 0x40b994
mov ebx, dword [esp]
mov dword [esp + 0x50], edx
test ebp, ebp
jbe 0x40bac8
xor edi, edi
movzx edx, byte [edi + eax]
test edx, edx
jne 0x40ba09
add edi, 1
cmp edi, ebp
jb 0x40b9fa
mov edx, ebp
sub edx, edi
mov dword [esp + 0x40], edx
test ebx, ebx
jbe 0x40ba6b
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x40ba6b
mov edx, dword [esp + 0x40]
test edx, edx
je 0x40bac4
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x48], esi
xor ecx, ecx
mov esi, dword [esp + 0x28]
add ebx, 0xffffffff
cmp ecx, ebx
jae 0x40ba5b
lea edx, [eax + edi]
movzx edx, byte [ecx + edx]
movzx edx, byte [edx + esi]
mov byte [ecx + ebp], dl
add ecx, 1
mov edx, dword [esp + 0x40]
cmp ecx, edx
jb 0x40ba3e
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov byte [ecx + edx], 0
mov edx, dword [esp + 0x50]
test edx, edx
je 0x40ba7d
mov byte [edx + esi - 1], 0
add edx, 0xffffffff
jne 0x40ba73
movzx edx, byte [esi]
mov byte [esp], dl
movzx ecx, byte [esp]
push esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [esp + 0x3c]
add esp, 4
test ebp, ebp
je 0x40baa7
mov byte [ebp + eax - 1], 0
add ebp, 0xffffffff
jne 0x40ba9d
movzx edx, byte [eax]
mov byte [esp], dl
movzx ecx, byte [esp]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [esp + 0x44]
add esp, 0x58
pop ebx
pop ebp
pop esi
pop edi
ret
xor ecx, ecx
jmp 0x40ba63
xor edi, edi
jmp 0x40ba09
add ecx, 1
cmp ecx, edx
jb 0x40b994
mov ebx, dword [esp]
mov dword [esp + 0x50], edx
jmp 0x40bac8
push 0x10
push 0x4e3a0c
push 0x4e3a40
push 0
mov dword [esp + 0x48], eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x38]
push 1
mov dword [esp + 0x3c], eax
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [esp + 0x3c]
add esp, 4
jmp 0x40b983
mov dword [esp + 0x4c], edi
xor eax, eax
add edx, esi
mov edi, edx
sub edi, eax
mov byte [edi], 0
add eax, 1
cmp eax, ecx
jb 0x40bb1f
mov edi, dword [esp + 0x4c]
jmp 0x40b908
add eax, 1
cmp eax, ecx
jb 0x40b88b
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x40b908
test edx, edx
jge 0x40b8e5
jmp 0x40b908
add ebp, 1
je 0x40b85a
mov dword [esp + 8], ecx
xor edx, edx
mov eax, 0x80000000
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ebp*4 - 4]
test ecx, eax
jne 0x40bb90
shr ecx, 1
add edx, 1
test ecx, ecx
jne 0x40bb83
mov ecx, dword [esp + 8]
shl ebp, 5
sub ebp, edx
jmp 0x40b85c
push 0x10
push 0x4e3a0c
push 0x4e3a40
push 0
mov dword [esp + 0x18], ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 8]
push 1
mov dword [esp + 0xc], ecx
call dword [sym.imp.MSVCRT.dll_exit]
mov ecx, dword [esp + 0xc]
add esp, 4
jmp 0x40b834