Function at 0x41f650
Capabilities:
Terminate process

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
xor esi, esi
mov edi, eax
cmp edi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], 1
je 0x41f67f
mov eax, dword [edi + 0x9d8]
cmp eax, esi
je 0x41f67f
mov dword [esp + 0x14], eax
jmp 0x41f6ad
push 0xc
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
cmp eax, esi
jne 0x41f693
jmp fcn.00408a80
mov edx, dword [esp + 0x10]
mov dword [eax], edx
lea ecx, [eax + 4]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
mov dword [ecx + 4], esi
mov dword [ecx], eax
mov dword [esp + 0x14], ecx
cmp edi, esi
je 0x41f6b9
mov ebx, dword [edi + 0x608]
jmp 0x41f6c3
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx + 0x5f0]
cmp ebx, esi
je 0x41f7bf
mov ecx, dword [ebx + 0x40]
cmp ecx, esi
je 0x41f7bf
mov edx, dword [ecx]
xor eax, eax
cmp edx, esi
jle 0x41f7bf
add ecx, 0xc
test dword [ecx], 0x100
jne 0x41f6fc
add eax, 1
add ecx, 0x40
cmp eax, edx
jl 0x41f6e5
jmp 0x41f7bf
xor ecx, ecx
xor edx, edx
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
xor esi, esi
lea edx, [esp + 0x10]
mov ecx, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], esi
call fcn.0041cc60
mov edx, dword [esp + 0x38]
push eax
push edx
push 0x516a80
lea ecx, [esp + 0x2c]
call fcn.0041c2c0
add esp, 0xc
test edi, edi
je 0x41f777
mov eax, dword [edi + 0x85c]
test eax, eax
je 0x41f760
mov edx, dword [eax + 0x1b0]
test edx, edx
je 0x41f760
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41f753
sub eax, esi
jne 0x41f765
mov edx, str.UNDEF
push edx
push 0x5103a4
lea ecx, [esp + 0x28]
call fcn.0041c2e0
add esp, 8
push 0
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x1c]
push 8
push ebx
call fcn.00437ae0
add esp, 0x10
test eax, eax
je 0x41f7b6
push 0x40
call fcn.00408960
add esp, 4
test eax, eax
je 0x41f7ae
push str.WARNING:_learn_address_plugin_call_failed
push 0x40
call fcn.00408640
add esp, 8
mov dword [esp + 0x18], 0
lea esi, [esp + 0x20]
call fcn.0041bb40
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x344], 0
je 0x41f892
xor edx, edx
xor eax, eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], eax
push str.learn_address
xor esi, esi
push edx
mov eax, str.script_type
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], esi
call fcn.0041a7f0
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.0041cc60
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x344]
push eax
mov eax, dword [esp + 0x44]
push eax
push edx
push str._sc__s__s
lea ecx, [esp + 0x38]
call fcn.0041c2c0
add esp, 0x18
test edi, edi
je 0x41f86a
mov eax, dword [edi + 0x85c]
test eax, eax
je 0x41f853
mov edx, dword [eax + 0x1b0]
test edx, edx
je 0x41f853
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41f846
sub eax, esi
jne 0x41f858
mov edx, str.UNDEF
push edx
push 0x5103a4
lea ecx, [esp + 0x28]
call fcn.0041c2e0
add esp, 8
mov eax, dword [esp + 0x14]
push 1
mov ebx, str.WARNING:_learn_address_command_failed
lea ecx, [esp + 0x24]
call fcn.00419d20
add esp, 4
test eax, eax
jne 0x41f889
mov dword [esp + 0x18], eax
lea esi, [esp + 0x20]
call fcn.0041bb40
mov eax, dword [esp + 0x10]
test eax, eax
je 0x41f8b6
mov edi, dword [sym.imp.MSVCR80.dll_free]
mov dword [esp + 0x10], 0
mov esi, dword [eax]
push eax
call edi
add esp, 4
test esi, esi
mov eax, esi
jne 0x41f8a8
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret