Function at 0x424707
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x434d21
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x1084
call fcn.00433290
push ebx
push edi
mov dword [ebp - 0x1088], ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0041de63
add esp, 4
mov dword [ebp - 4], 0
push 0x43dcfc
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 8
and eax, 0xff
test eax, eax
je 0x424893
lea ecx, [ebp - 0x1050]
call fcn.0041cb30
mov byte [ebp - 4], 1
mov edx, dword [ebp + 0x10]
and edx, 0xffff
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1050]
call fcn.0041d7a7
lea ecx, [ebp - 0x106c]
push ecx
push 0x43e67c
lea ecx, [ebp - 0x104c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
mov byte [ebp - 4], 2
mov dl, byte [ebp + 8]
mov byte [ebp - 0x108c], dl
cmp byte [ebp - 0x108c], 5
je 0x4247cd
cmp byte [ebp - 0x108c], 6
je 0x4247e0
cmp byte [ebp - 0x108c], 7
je 0x4247f3
jmp 0x424806
push 0x43dd04
lea ecx, [ebp - 0x104c]
call dword [0x4360bc]
jmp 0x424852
push 0x43dd0c
lea ecx, [ebp - 0x104c]
call dword [0x4360bc]
jmp 0x424852
push 0x43dd14
lea ecx, [ebp - 0x104c]
call dword [0x4360bc]
jmp 0x424852
push 0x43dd1c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 0x1070], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x104c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1050]
call fcn.0041ceba
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x1070]
jmp 0x425091
mov byte [ebp - 0x1074], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x104c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1050]
call fcn.0041ceba
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x1074]
jmp 0x425091
mov dword [ebp - 0x1024], 0
mov dword [ebp - 0x1034], 0
mov byte [ebp - 0x1038], 0
mov eax, dword [ebp + 8]
and eax, 0xff
mov dword [ebp - 0x1090], eax
mov ecx, dword [ebp - 0x1090]
sub ecx, 5
mov dword [ebp - 0x1090], ecx
cmp dword [ebp - 0x1090], 3
ja case.default.0x4248da
mov edx, dword [ebp - 0x1090]
jmp dword [edx*4 + 0x4250a3]
mov byte [ebp - 0x1038], 0x20
jmp 0x424927
mov byte [ebp - 0x1038], 0x28
jmp 0x424927
mov byte [ebp - 0x1038], 0x30
jmp 0x424927
mov byte [ebp - 0x1038], 0x38
jmp 0x424927
mov byte [ebp - 0x1078], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x1078]
jmp 0x425091
mov eax, dword [ebp - 0x1038]
and eax, 0xff
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x1c]
xor ecx, ecx
mov cl, byte [edx + eax + 3]
shl ecx, 0x18
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
mov edx, dword [ebp - 0x1088]
mov edx, dword [edx + 0x1c]
xor ebx, ebx
mov bl, byte [edx + eax + 2]
shl ebx, 0x10
or ecx, ebx
mov eax, dword [ebp - 0x1088]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x1c]
xor ebx, ebx
mov bl, byte [eax + edx + 1]
shl ebx, 8
or ecx, ebx
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
mov edx, dword [ebp - 0x1088]
mov edx, dword [edx + 0x20]
xor ebx, ebx
mov bl, byte [eax + edx]
or ecx, ebx
mov dword [ebp - 0x1024], ecx
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
add ecx, 4
mov edx, dword [ebp - 0x1088]
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
xor edx, edx
mov dl, byte [eax + ecx + 3]
shl edx, 0x18
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x1c]
xor ebx, ebx
mov bl, byte [eax + ecx + 2]
shl ebx, 0x10
or edx, ebx
mov ecx, dword [ebp - 0x1088]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x1088]
mov ecx, dword [ecx + 0x1c]
xor ebx, ebx
mov bl, byte [ecx + eax + 1]
shl ebx, 8
or edx, ebx
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x20]
xor ebx, ebx
mov bl, byte [ecx + eax]
or edx, ebx
mov dword [ebp - 0x1034], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
add edx, 4
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ebp - 0x1024]
mov dword [ecx + 0x20], edx
mov eax, dword [ebp - 0x1088]
mov ecx, dword [ebp - 0x1024]
mov dword [eax + 0x18], ecx
mov word [ebp - 0x103c], 0
mov byte [ebp - 0x1020], 0
mov ecx, 0x3ff
xor eax, eax
lea edi, [ebp - 0x101f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x1030], 0
mov dword [ebp - 0x1028], 0
mov dword [ebp - 0x102c], 0
mov byte [ebp - 0x10], 0
mov edx, 1
test edx, edx
je 0x425074
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
xor edx, edx
mov dl, byte [eax + ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x20]
xor ebx, ebx
mov bl, byte [ecx + eax]
or edx, ebx
mov word [ebp - 0x103c], dx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x18]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp + 0x10]
and ecx, 0xffff
mov edx, dword [ebp - 0x103c]
and edx, 0xffff
cmp ecx, edx
je 0x424b7b
mov eax, dword [ebp - 0x103c]
and eax, 0xffff
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
add edx, eax
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 0x103c]
and ecx, 0xffff
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x18], eax
jmp 0x42505c
mov dword [ebp - 0x102c], 0
jmp 0x424b96
mov edx, dword [ebp - 0x102c]
add edx, 1
mov dword [ebp - 0x102c], edx
mov eax, dword [ebp + 0x10]
and eax, 0xffff
cmp dword [ebp - 0x102c], eax
jge 0x424bdf
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x1c]
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x102c]
mov cl, byte [edx + ecx]
mov byte [ebp + eax - 0x1020], cl
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
add eax, 1
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x20], eax
jmp 0x424b87
mov edx, dword [ebp + 0x10]
and edx, 0xffff
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x18]
add ecx, edx
mov edx, dword [ebp - 0x1088]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp + 0x10]
and eax, 0xffff
push eax
lea ecx, [ebp - 0x1020]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.MSVCRT.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x424fb8
mov word [ebp - 0x1054], 0
mov word [ebp - 0x1068], 0
mov word [ebp - 0x105c], 0
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
xor edx, edx
mov dl, byte [eax + ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x20]
xor ebx, ebx
mov bl, byte [ecx + eax]
or edx, ebx
mov word [ebp - 0x1054], dx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x18]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
xor eax, eax
mov al, byte [ecx + edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x1088]
mov ecx, dword [ecx + 0x20]
xor ebx, ebx
mov bl, byte [edx + ecx]
or eax, ebx
mov word [ebp - 0x1068], ax
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
add eax, 2
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x18]
add eax, 2
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x18], eax
mov dx, word [ebp - 0x105c]
add dx, word [ebp - 0x1068]
mov word [ebp - 0x105c], dx
mov ax, word [ebp - 0x105c]
add ax, 2
mov word [ebp - 0x105c], ax
mov byte [ebp - 0x1060], 1
jmp 0x424d44
mov cl, byte [ebp - 0x1060]
add cl, 1
mov byte [ebp - 0x1060], cl
mov edx, dword [ebp - 0x1060]
and edx, 0xff
mov eax, dword [ebp + 0x18]
and eax, 0xff
cmp edx, eax
jge 0x424e6e
mov ecx, dword [ebp - 0x1068]
and ecx, 0xffff
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x1068]
and edx, 0xffff
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x18]
add ecx, edx
mov edx, dword [ebp - 0x1088]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
xor edx, edx
mov dl, byte [eax + ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x1088]
mov eax, dword [eax + 0x20]
xor ebx, ebx
mov bl, byte [ecx + eax]
or edx, ebx
mov word [ebp - 0x1068], dx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x18]
add edx, 2
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x18], edx
mov cx, word [ebp - 0x105c]
add cx, word [ebp - 0x1068]
mov word [ebp - 0x105c], cx
mov dx, word [ebp - 0x105c]
add dx, 2
mov word [ebp - 0x105c], dx
mov eax, dword [ebp - 0x105c]
and eax, 0xffff
mov ecx, dword [ebp - 0x1054]
and ecx, 0xffff
cmp eax, ecx
jle 0x424e69
mov byte [ebp - 0x107c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x107c]
jmp 0x425091
jmp 0x424d35
push 0x400
push 0
lea edx, [ebp - 0x1020]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x102c], 0
jmp 0x424e9f
mov eax, dword [ebp - 0x102c]
add eax, 1
mov dword [ebp - 0x102c], eax
mov ecx, dword [ebp - 0x1068]
and ecx, 0xffff
cmp dword [ebp - 0x102c], ecx
jge 0x424eec
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x1c]
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x102c]
mov dl, byte [eax + edx]
mov byte [ebp + ecx - 0x1020], dl
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
add ecx, 1
mov edx, dword [ebp - 0x1088]
mov dword [edx + 0x20], ecx
jmp 0x424e90
mov byte [ebp - 0x1058], 0
mov word [ebp - 0x1064], 0
jmp 0x424f10
mov ax, word [ebp - 0x1064]
add ax, 1
mov word [ebp - 0x1064], ax
mov ecx, dword [ebp - 0x1064]
and ecx, 0xffff
mov edx, dword [ebp + 0x10]
and edx, 0xffff
cmp ecx, edx
jge 0x424f48
mov eax, dword [ebp - 0x1064]
and eax, 0xffff
mov ecx, dword [ebp + 0xc]
mov dl, byte [ebp - 0x1058]
add dl, byte [ecx + eax]
mov byte [ebp - 0x1058], dl
jmp 0x424efe
mov ax, word [ebp - 0x1068]
push eax
lea ecx, [ebp - 0x1020]
push ecx
mov ecx, dword [ebp - 0x1088]
call fcn.004250b3
mov dx, word [ebp - 0x1068]
push edx
lea eax, [ebp - 0x1020]
push eax
mov cl, byte [ebp - 0x1058]
push ecx
mov ecx, dword [ebp - 0x1088]
call fcn.00425185
lea edx, [ebp - 0x1020]
push edx
mov eax, dword [ebp + 0x14]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
mov byte [ebp - 0x1080], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x1080]
jmp 0x425091
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x20]
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x1c]
xor eax, eax
mov al, byte [ecx + edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x1088]
mov ecx, dword [ecx + 0x20]
xor ebx, ebx
mov bl, byte [edx + ecx]
or eax, ebx
mov word [ebp - 0x103c], ax
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x20]
add eax, 2
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x1088]
mov eax, dword [edx + 0x18]
add eax, 2
mov ecx, dword [ebp - 0x1088]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0x103c]
and edx, 0xffff
mov eax, dword [ebp - 0x1088]
mov ecx, dword [eax + 0x20]
add ecx, edx
mov edx, dword [ebp - 0x1088]
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x103c]
and eax, 0xffff
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x18]
add edx, eax
mov eax, dword [ebp - 0x1088]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x1088]
mov edx, dword [ecx + 0x18]
cmp edx, dword [ebp - 0x1034]
jb 0x42506f
jmp 0x425074
jmp 0x424aac
mov byte [ebp - 0x1084], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, byte [ebp - 0x1084]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14