Function at 0x4fa3f0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
mov byte [esp + 0x13], 0
je 0x4fa954
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
lea ecx, [eax - 1]
cmp ecx, 0x14
ja case.default.0x4fa423
jmp dword [ecx*4 + 0x4fa9f4]
mov eax, dword [edi + 0x438]
mov ecx, eax
and ecx, 0x101
cmp ecx, 1
je 0x4fa980
test eax, 0x100
jne 0x4fa470
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa461
test eax, eax
je 0x4fa45b
cmp eax, dword [edi + 0x418]
je 0x4fa461
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 4]
cmp edx, dword [edi + 0x41c]
je case.0x4fa423.1
mov eax, dword [edi]
mov ecx, dword [edi + 4]
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
call fcn.004f99a0
mov esi, eax
call fcn.004ff320
cmp word [eax], 0xa
setne byte [esp + 0x13]
jmp case.0x4fa423.1
test byte [edi + 0x438], 2
jne 0x4fa980
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa4c1
test eax, eax
je 0x4fa4bb
cmp eax, dword [edi + 0x420]
je 0x4fa4c1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 4]
cmp edx, dword [edi + 0x424]
je case.0x4fa423.1
mov esi, edi
call fcn.004ff320
cmp word [eax], 0xa
jne 0x4fa980
jmp case.0x4fa423.1
test byte [edi + 0x438], 4
je 0x4fa513
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa508
test eax, eax
je 0x4fa502
cmp eax, dword [edi + 0x418]
je 0x4fa508
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi + 4]
cmp eax, dword [edi + 0x41c]
je 0x4fa540
test byte [edi + 0x438], 8
je 0x4fa544
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa535
test eax, eax
je 0x4fa52f
cmp eax, dword [edi + 0x420]
je 0x4fa535
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0x424]
jne 0x4fa544
xor al, al
jmp 0x4fa56c
mov edx, dword [edi + 4]
mov eax, dword [edi]
push edx
push eax
or eax, 0xffffffff
mov ecx, edi
call fcn.004fbb60
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
mov bl, al
push edx
xor eax, eax
mov ecx, edi
call fcn.004fbb60
cmp bl, al
setne al
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 8]
and dl, 1
cmp al, dl
je 0x4fa980
jmp case.0x4fa423.1
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa59b
test eax, eax
je 0x4fa595
cmp eax, dword [edi + 0x420]
je 0x4fa59b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi + 4]
cmp eax, dword [edi + 0x424]
je 0x4fa980
mov esi, edi
call fcn.004ff320
cmp word [eax], 0xa
je 0x4fa980
call fcn.004ff320
cmp word [eax], 0xd
je 0x4fa980
call fcn.004ff2e0
jmp case.0x4fa423.1
mov ecx, dword [edi + 0x438]
mov edx, dword [edi + 0x424]
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
push edx
mov edx, dword [edi + 4]
and ecx, 0x80
mov ecx, dword [edi + 0x420]
push ecx
mov ecx, dword [edi]
push edx
push ecx
mov ecx, dword [edi + 0x434]
setne dl
push ecx
add edi, 0x440
push edi
lea edi, [ebx + eax*2]
lea esi, [esp + 0x5c]
call fcn.004faa50
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov esi, dword [esp + 0x2c]
add esp, 0x18
cmp edi, 0xfffffffc
je 0x4fa63a
test edi, edi
je 0x4fa634
cmp edi, dword [esi]
je 0x4fa63a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp ebx, dword [esi + 4]
je 0x4fa966
mov dword [esi], edi
mov edi, dword [esp + 0x14]
mov dword [esi + 4], ebx
jmp case.0x4fa423.1
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa66a
test eax, eax
je 0x4fa664
cmp eax, dword [edi + 0x420]
je 0x4fa66a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 4]
cmp edx, dword [edi + 0x424]
je 0x4fa980
push esi
push edi
call fcn.004fbc90
test al, al
je 0x4fa980
mov byte [esp + 0x13], 0
jmp 0x4fa942
mov esi, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, 0xb
mov eax, ecx
mov edx, esi
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x5c], ecx
push eax
mov ecx, edi
sete bl
call fcn.004fa3f0
xor ecx, ecx
test al, al
setne cl
movzx edx, bl
cmp ecx, edx
je 0x4fa96c
mov eax, dword [esp + 0x40]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp case.0x4fa423.1
mov eax, dword [esi + 0x14]
mov ecx, dword [edi]
shl eax, 4
mov dword [eax + edi + 0xc], ecx
mov edx, dword [edi + 4]
mov dword [eax + edi + 0x10], edx
jmp case.0x4fa423.1
cmp byte [edi + 0x43d], 0
mov eax, dword [esi + 0x14]
jne 0x4fa710
cmp dword [eax + 0x14], 0
je case.0x4fa423.1
mov ecx, dword [eax + 0x14]
mov edx, 1
shl edx, cl
mov ecx, dword [edi]
or dword [edi + 8], edx
mov eax, dword [eax + 0x14]
shl eax, 4
mov dword [eax + edi + 0x14], ecx
mov edx, dword [edi + 4]
mov dword [eax + edi + 0x18], edx
jmp case.0x4fa423.1
mov ecx, dword [esi + 0x14]
mov eax, 1
shl eax, cl
test dword [edi + 8], eax
je case.0x4fa423.1
mov edx, dword [edi + 4]
mov ebx, dword [edi]
shl ecx, 4
mov esi, dword [ecx + edi + 0xc]
lea eax, [ecx + edi]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
cmp esi, 0xfffffffc
je 0x4fa783
test esi, esi
je 0x4fa77d
cmp esi, ecx
je 0x4fa783
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x38], eax
je 0x4fa800
mov ecx, dword [edi + 0x438]
mov edx, eax
mov eax, dword [esp + 0x1c]
push edx
mov edx, dword [edi + 0x424]
push eax
mov eax, dword [edi + 0x420]
and ecx, 0x80
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [edi + 4]
push esi
push edx
mov edx, dword [edi]
push eax
mov eax, dword [edi + 0x434]
push ecx
push edx
setne dl
lea ecx, [edi + 0x440]
lea esi, [esp + 0x6c]
call fcn.004fbff0
mov ebx, dword [eax]
mov eax, dword [eax + 4]
add esp, 0x20
mov dword [esp + 0x28], eax
cmp ebx, 0xfffffffc
je 0x4fa7f3
test ebx, ebx
je 0x4fa7ed
cmp ebx, dword [edi]
je 0x4fa7f3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x28]
cmp ecx, dword [edi + 4]
je 0x4fa980
mov edx, dword [esp + 0x28]
mov dword [edi], ebx
mov dword [edi + 4], edx
jmp case.0x4fa423.1
mov eax, esi
mov esi, edi
call fcn.004fb880
test al, al
je 0x4fa980
jmp case.0x4fa423.12
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
shr eax, 1
and al, 1
movzx ecx, al
push ecx
push edi
call fcn.004fb930
test al, al
je 0x4fa980
jmp case.0x4fa423.12
mov edx, dword [ebp + 8]
mov esi, dword [edi + 0x448]
mov eax, dword [edx + 0x14]
cmp dword [esi + 4], eax
je 0x4fa85e
mov esi, dword [esi + 0x10]
cmp dword [esi + 4], eax
jne 0x4fa856
mov ebx, dword [esi + 0xc]
test ebx, ebx
je case.0x4fa423.12
mov eax, dword [ebx]
cmp eax, 0xfffffffc
je 0x4fa87e
test eax, eax
je 0x4fa878
cmp eax, dword [edi]
je 0x4fa87e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 4]
cmp eax, dword [edi + 4]
je case.0x4fa423.12
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov byte [esi + 8], 1
jmp case.0x4fa423.1
test dword [edi + 0x438], 0x2020
je 0x4fa8cd
mov eax, dword [edi + 0x418]
cmp eax, 0xfffffffc
je 0x4fa8c2
test eax, eax
je 0x4fa8bc
cmp eax, dword [edi]
je 0x4fa8c2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi + 0x41c]
cmp eax, dword [edi + 4]
je 0x4fa8fa
cmp byte [edi + 0x444], 0
je 0x4fa901
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa8ef
test eax, eax
je 0x4fa8e9
cmp eax, dword [edi + 0x420]
je 0x4fa8ef
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0x424]
je 0x4fa901
mov byte [esp + 0x13], 1
jmp case.0x4fa423.12
cmp byte [edi + 0x43c], 0
je 0x4fa915
mov eax, edi
call fcn.004fbea0
test al, al
je case.0x4fa423.12
mov eax, dword [esp + 0x14]
add edi, 0x20c
mov ecx, 0x83
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [eax + 0x43c], 1
mov edi, eax
mov dword [ebp + 8], 0
cmp byte [esp + 0x13], 0
jne 0x4fa985
mov esi, dword [ebp + 8]
test esi, esi
je 0x4fa954
mov eax, dword [esi + 0xc]
mov dword [ebp + 8], eax
test eax, eax
jne 0x4fa411
xor eax, eax
cmp byte [esp + 0x13], al
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x14]
jmp 0x4fa980
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov byte [esp + 0x13], 1
test byte [edi + 0x438], 0x80
je 0x4fa954
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x4fa9a7
test eax, eax
je 0x4fa9a1
cmp eax, dword [edi + 0x420]
je 0x4fa9a7
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 4]
cmp edx, dword [edi + 0x424]
jne 0x4fa954
mov esi, dword [esp + 0x14]
add edi, 0x20c
mov ecx, 0x83
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4
push eax
push str.invalid__N_type:__d_n
call dword [sym.imp.MSVCR90.dll_printf]
add esp, 8
push 1
call dword [sym.imp.MSVCR90.dll_exit]
lea ecx, [ecx]
cmp byte [ecx - 0x5bd5ffb1], ch
dec edi
add byte [ebx - 0x19ffb05c], bl
movsb byte es:[edi], byte [esi]
dec edi
add byte [edx - 0x2bffb05b], al
movsd dword es:[edi], dword [esi]
dec edi
add byte [ecx - 0x5a], dl
dec edi
add byte [eax], bh
test eax, 0xa938004f
dec edi
add byte [edx - 0x6dffb05a], dl
cmpsb byte [esi], byte es:[edi]
dec edi
add byte [ecx], dh
test eax, 0xa6e2004f
dec edi
add dl, bh
cmpsb byte [esi], byte es:[edi]
dec edi
add byte [0xe004fa7], dh
test al, 0x4f
add byte [eax], bh
test eax, 0xa824004f
dec edi
add byte [ebp - 0x58], al
dec edi
add byte [eax], bh
test eax, 0xa89d004f
dec edi
add ah, cl
int3