Function at 0x406de0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x110
mov eax, dword [0x51a10c]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x406e1c.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40b99e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x406e1c.45
jmp dword [esi*4 + 0x4d181c]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x4094f6
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40bbb2
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x40aef8
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bac0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x38]
movd xmm0, dword [edi + 0x114]
movd xmm1, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
punpckldq xmm0, xmm1
mov dword [esp + 0x44], eax
movd eax, xmm1
movq qword [esp + 0x38], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x40a731
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40b99e
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40b99e
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40ba8c
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x406f2c
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x406f32
cmp esi, edx
je 0x40b056
mov eax, dword [eax]
test eax, eax
jne 0x406f10
lea eax, [esp + 0x38]
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
jmp 0x406eb7
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bca2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x40aa9b
xor ebx, ebx
cmp dword [eax], 5
je 0x40b57a
mov edx, dword [eax]
cmp edx, 0x24
je 0x40ae75
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x40b0c1
cmp edx, 0x25
je 0x40a746
movd xmm0, dword [esp + 0x24]
movd xmm7, dword [esp + 0x2c]
punpckldq xmm0, xmm7
lea eax, [esp + 0x38]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov dword [esp + 0x44], ecx
movq qword [esp + 0x38], xmm0
jmp 0x406eb7
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x40703f
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40b99e
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x40b090
mov edx, 0x4d1575
mov eax, edi
call fcn.00403280
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, dword [edi + 0x128]
mov esi, dword [edi + 0x100]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
cmp dword [edi + 0x128], ebx
jne case.default.0x40b99e
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40b99e
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40b99e
lea eax, [esp + 0x38]
movd xmm0, dword [edi + 0x114]
movd xmm3, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
mov edx, 0x11
punpckldq xmm0, xmm3
mov dword [esp + 0x44], eax
movd eax, xmm3
mov ecx, dword [eax + 0x10]
movq qword [esp + 0x38], xmm0
mov eax, edi
call fcn.0040bde0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x40aeb7
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40b99e
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040bde0
mov edx, 0x4d1578
mov eax, edi
call fcn.00403280
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x40b226
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd38
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x40ac46
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40af2b
test ebx, ebx
je 0x4071ac
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40b96e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b474
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov edx, 0x11
mov byte [edi + eax], 0x28
mov eax, edi
mov byte [edi + 0x104], 0x28
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b43f
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x29
cmp dword [eax], 0x3f
je 0x40b42e
cmp ebx, 8
je 0x40b3e9
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bce8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40ac4d
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
cmp dword [ebx], 0x56
je 0x40ac56
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40729f
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b6cd
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcac
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcf2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d610
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x407313
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b2bd
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, ebx
mov edx, 0x11
mov byte [edi + eax], 0x7b
mov eax, edi
mov byte [edi + 0x104], 0x7b
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b288
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40b99e
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x4d17c9
jmp 0x4073df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a37e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4073c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17c9
je 0x40a37e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4073c2
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x4d15b2
jmp 0x4074a3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d15b2
je 0x40a3ab
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407480
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a3ab
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407482
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x4d1696
jmp 0x40755f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a2eb
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407540
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1696
je 0x40a2eb
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407542
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x4d1645
jmp 0x40761f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a45f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407600
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1645
je 0x40a45f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407602
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x4d1672
jmp 0x4076df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a4b6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4076c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1672
je 0x40a4b6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4076c2
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x4077a3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d161e
je 0x40a510
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407780
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d161e
je 0x40a510
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407782
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x4d1682
jmp 0x40785f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a56a
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407840
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1682
je 0x40a56a
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407842
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x4d162f
jmp 0x40791f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a5c4
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407900
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a5c4
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407902
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x4d1657
jmp 0x4079df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a6c2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4079c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1657
je 0x40a6c2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4079c2
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x4d160b
jmp 0x407aa3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d160b
je 0x40a6ef
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407a80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a6ef
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407a82
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x4d15f8
jmp 0x407b63
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d15f8
je 0x409e46
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407b40
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409e46
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407b42
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x4d1727
jmp 0x407c1f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a042
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407c00
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a042
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407c02
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x4d15d6
jmp 0x407cdf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f58
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407cc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f58
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407cc2
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x4d17e3
jmp 0x407da3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17e3
je 0x40a0c9
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407d80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a0c9
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407d82
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x4d15df
jmp 0x407e5f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409efe
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407e40
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409efe
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407e42
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x4d170c
jmp 0x407f23
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d170c
je 0x40a06f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407f00
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a06f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407f02
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b253
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7e
mov byte [edi + 0x104], 0x7e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd3d
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x4d17d1
jmp 0x40801f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a780
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408000
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40b327
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408002
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x4d15ca
jmp 0x4080df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a53d
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4080c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a53d
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4080c2
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a9c6
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40b99e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x4d17ec
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x4081df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d10
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4081c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d10
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4081c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x4d1574
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x40829f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d10
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408280
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d10
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408282
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x40aa34
mov edx, ecx
mov eax, edi
call fcn.00403350
xor edx, edx
test eax, eax
je 0x40aa34
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x40b083
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40b083
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x408330
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
lea esi, cs:[esi]
nop
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x24]
mov eax, edi
mov edx, 0x11
add ebx, 1
call fcn.0040bde0
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40b99e
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x4d1575
jmp 0x4083e4
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x4d1577
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x409d4d
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x4083c0
mov eax, dword [edi + 0x10c]
add esi, 1
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], bl
mov byte [edi + 0x104], bl
cmp esi, 0x4d1577
je 0x409d4d
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x4083c2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd2e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x40aaa4
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x40b019
test eax, eax
je case.0x406e1c.45
mov edx, ecx
jmp 0x4084b8
test edx, edx
je 0x40b019
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x4084b0
jmp case.0x406e1c.45
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x148]
mov edx, 0x11
mov esi, dword [edi + 0x114]
mov dword [edi + 0x114], 0
mov dword [edi + 0x148], eax
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
cmp byte [edi + 0x104], 0x3c
je 0x40b1e0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b1ab
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov edx, 0x11
mov byte [edi + eax], 0x3c
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x3c
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
cmp byte [edi + 0x104], 0x3e
je 0x40b19a
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b165
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
mov dword [edi + 0x114], esi
mov dword [edi + 0x148], ebx
jmp case.default.0x40b99e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x4d17f5
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x4085e3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17f5
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4085c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4085c2
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x4d1807
jmp 0x40869f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f85
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408680
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f85
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408682
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x4d17fe
jmp 0x40875f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408740
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17fe
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408742
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b37f
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3c
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x3c
mov esi, dword [eax + 0xc]
mov dword [esp + 0x2c], 0
test esi, esi
jne 0x40882e
jmp 0x40a48c
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x40a48c
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x408810
mov eax, dword [edi + 0x100]
mov ebx, 0x4d1575
jmp 0x4088a3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1577
je 0x408810
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408880
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1577
je 0x408810
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408882
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x4d16ad
jmp 0x40895f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a09c
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408940
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d16ad
je 0x40a09c
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408942
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x406e1c.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x406e1c.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040dfa0
test eax, eax
jne case.default.0x40b99e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040e3e0
test eax, eax
jne case.default.0x40b99e
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
mov esi, dword [eax + 0x10]
mov dword [esp + 4], 0x4d1744
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x40bb40
mov edx, 0x11
mov eax, edi
call fcn.0040dda0
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040d610
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040dda0
mov eax, edi
mov edx, 0x4d1747
call fcn.00403280
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bc93
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040dda0
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x406e1c.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x40b645
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040dfa0
test eax, eax
jne case.default.0x40b99e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040e3e0
test eax, eax
jne case.default.0x40b99e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40bac5
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x4d173e
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0xc]
test eax, eax
jne 0x408b3d
cmp dword [ecx], 3
je 0x40bb1a
mov edx, 0x11
mov eax, edi
call fcn.0040dda0
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x4d1741
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ba59
mov dword [esp + 4], 0x4d173e
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40bc35
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040dda0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40b99e
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40b99e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd1a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x40acf4
cmp eax, 0x35
je 0x40aeff
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d610
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd56
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040dda0
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40b99e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408c9f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408c80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408c82
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x4d1819
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x408d5f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a4e3
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408d40
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a4e3
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408d42
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x4d177f
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x408e23
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1782
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408e00
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d1782
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408e02
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x4d173a
jmp 0x408edf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a597
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408ec0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a597
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408ec2
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x4d173a
jmp 0x408f9f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a3d8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408f80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a3d8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408f82
mov eax, dword [esp + 0x2c]
mov ebx, 0x4d1728
mov esi, 0x4d1730
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x100]
jmp 0x40905f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a5f1
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409040
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a5f1
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409042
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x40ab40
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd06
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d1783
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je case.default.0x40b99e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40915f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409140
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409142
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x4d16f5
jmp 0x40921f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a432
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409200
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d16f5
je 0x40a432
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409202
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x4d1773
jmp 0x4092df
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a345
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4092c0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a345
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4092c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcfc
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b1f1
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5b
mov byte [edi + 0x104], 0x5b
lea esi, cs:[esi]
nop
mov esi, dword [esp + 0x2c]
mov eax, edi
mov edx, 0x11
mov ecx, dword [esi + 0xc]
call fcn.0040bde0
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x409d29
mov ebx, 0x4d1575
mov esi, 0x4d1577
jmp 0x40941b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4093b0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409400
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4093b0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409402
mov eax, dword [edi + 0x114]
mov dword [edi + 0x114], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je case.0x406e1c.45
lea esi, [esp + 0x48]
mov eax, dword [edi + 0x110]
mov dword [esp + 0x28], 0
xor edx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov eax, esi
mov dword [eax], edx
mov edx, dword [esp + 0x24]
mov ecx, eax
mov dword [eax + 8], 0
mov dword [eax + 0xc], edx
mov edx, dword [ebx]
add dword [esp + 0x28], 1
mov dword [eax + 4], ebx
cmp edx, 0x4f
je 0x406e2f
ja 0x406e23
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x406e2f
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x40b4b0
cmp edx, 4
je 0x40b538
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
cmp dword [ebx], 4
jne 0x409534
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
mov ebx, dword [esp + 0x28]
shl ebx, 4
add ebx, esi
mov eax, dword [ebx - 8]
test eax, eax
je 0x40a9fb
sub ebx, 0x10
cmp ebx, esi
jne 0x40953d
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40b99e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40b99e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40959f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409580
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409582
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b2f2
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x40
mov byte [edi + 0x104], 0x40
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd10
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x4d17ac
jmp 0x4096a3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17ac
je 0x40a1e5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409680
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a1e5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409682
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x409d56
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40975f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d56
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409740
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409d56
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409742
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b0fb
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x28
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x28
mov ecx, dword [eax + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40ac60
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40b99e
mov edx, dword [edi + 0x114]
movd xmm2, dword [esp + 0x2c]
lea esi, [esp + 0x48]
mov dword [esp + 0x50], 0
mov eax, dword [edi + 0x110]
mov dword [edi + 0x114], esi
mov ecx, esi
mov ebx, 1
movd xmm0, edx
mov dword [esp + 0x28], edx
punpckldq xmm0, xmm2
mov dword [esp + 0x54], eax
mov eax, edx
movq qword [esp + 0x48], xmm0
test edx, edx
jne 0x4098c3
jmp 0x40baef
mov edx, dword [eax + 8]
test edx, edx
jne 0x4098bd
cmp ebx, 3
ja case.0x406e1c.45
movdqu xmm0, xmmword [eax]
mov edx, ebx
add ebx, 1
shl edx, 4
movups xmmword [esp + edx + 0x48], xmm0
mov dword [esp + edx + 0x48], ecx
lea ecx, [esi + edx]
mov dword [edi + 0x114], ecx
mov dword [eax + 8], 1
mov eax, dword [eax]
test eax, eax
je 0x4098d0
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x409888
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40b99e
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x40992c
lea esi, cs:[esi]
lea esi, [esi]
sub ebx, 1
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esi + eax]
mov eax, edi
call fcn.0040be90
cmp ebx, 1
jne 0x409910
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040d2f0
jmp case.default.0x40b99e
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4099b5
movd xmm4, eax
lea eax, [esp + 0x38]
mov edx, 0x11
movd xmm0, dword [edi + 0x114]
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x40], 0
punpckldq xmm0, xmm4
mov dword [esp + 0x44], eax
mov eax, edi
movq qword [esp + 0x38], xmm0
call fcn.0040bde0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40b99e
mov edx, 0x20
mov eax, edi
call fcn.004031b0
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040cac0
jmp case.default.0x40b99e
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x409a23
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d177e
je 0x40a372
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409a00
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d177e
je 0x40a372
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409a02
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4d121c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00418b30
test eax, eax
js 0x409ac7
add eax, 1
cmp eax, 0x19
ja 0x40acef
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40b99e
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x409b1f
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je case.default.0x40b99e
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409b00
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je case.default.0x40b99e
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409b02
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x4d16dd
jmp 0x409bdf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a212
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409bc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d16dd
je 0x40a212
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409bc2
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x4d16c7
jmp 0x409c9f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a318
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409c80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d16c7
je 0x40a318
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409c82
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40aa66
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40b99e
mov ebx, dword [esp + 0x2c]
jmp 0x408360
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x4d121c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00418b30
test eax, eax
js 0x409d91
add eax, 1
cmp eax, 0x19
ja 0x40acef
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x40a71c
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x409ddf
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40a71c
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409dc0
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x40a71c
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409dc2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x4d15fd
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x409e9f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f2b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409e80
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409f2b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409e82
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd42
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd4c
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd33
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x4d180e
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x409fdf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409fc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409fc2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd47
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd1f
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd51
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4d121c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00418b30
test eax, eax
js 0x40a106
add eax, 1
cmp eax, 0x19
ja 0x40acef
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x40a1c0
lea esi, [ebx + eax]
jmp 0x40a15b
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40a1c0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x40a140
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40ae4f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40a142
cmp edx, 0xff
je 0x40ac95
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcd4
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x4d16e3
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov eax, dword [edi + 0x100]
jmp 0x40a25b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a2be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x40a240
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d16e3
je 0x40a2be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40a242
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd87
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bdb4
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd01
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd15
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x409801
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bce3
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcb1
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x40a409
movd xmm0, dword [edi + 0x110]
movd xmm5, eax
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
punpckldq xmm0, xmm5
movq qword [esp + 0x38], xmm0
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40b99e
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd96
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bc9d
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x40b130
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcc0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bda0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bca7
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd8c
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcb6
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd9b
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcbb
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x40ae59
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40b99e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40a65f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40b99e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x40a640
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40b99e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40a642
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bda5
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd5b
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40b99e
jmp 0x408149
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040be90
jmp 0x406ed3
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], eax
test esi, esi
jne 0x406eb7
jmp 0x406f5e
mov esi, dword [esp + 0x2c]
mov edx, dword [edi + 0x110]
mov dword [esp + 0x3c], 0
mov ebx, dword [edi + 0x120]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x38]
mov dword [edi + 0x110], edx
mov edx, 1
mov dword [esp + 0x28], ebx
mov dword [edi + 0x120], 0
test esi, esi
je 0x40a7c9
cmp dword [esi], 0x59
je 0x40b737
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x40b3b4
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x4d17d2
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x4d17d4
mov byte [edi + 0x104], 0x28
call fcn.0040bde0
mov eax, dword [esp + 0x28]
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
mov eax, dword [edi + 0x100]
jmp 0x40a85b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40a8be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x40a840
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4d17d4
je 0x40a8be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40a842
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x4d121c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00418b30
test eax, eax
js 0x40a8fb
add eax, 1
cmp eax, 0x19
ja 0x40acef
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x40a1c0
lea esi, [ebx + eax]
jmp 0x40a95f
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x40a1c0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x40a940
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x40ae4f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40a942
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40815d
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b702
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, dword [ebx - 0xc]
mov edx, 0x11
mov byte [edi + eax], 0x20
mov eax, edi
mov byte [edi + 0x104], 0x20
call fcn.0040be90
jmp 0x409548
mov eax, edi
mov edx, 0x11
call fcn.0040dda0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcc5
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d177f
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x409d37
mov eax, dword [esp + 0x28]
jmp 0x406fc4
test eax, eax
je 0x40af98
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x4d1592
jmp 0x40aadd
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40afee
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x40aabe
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40afee
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40aac0
mov edx, str.parm
mov eax, edi
call fcn.00403280
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x4d121c
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.00418b30
test eax, eax
js 0x40ab7f
add eax, 1
cmp eax, 0x19
ja 0x40acef
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x40acca
add esi, ebx
jmp 0x40abdf
mov edx, ecx
lea ecx, [edx + 1]
add ebx, 1
mov dword [edi + 0x100], ecx
mov byte [edi + edx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40acca
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x40abc0
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40b8da
movzx eax, byte [ebx]
mov edx, 1
jmp 0x40abc2
xor ebx, ebx
jmp 0x4071ac
cmp esi, 0x56
jne 0x40729f
mov ebx, 0x3a
jmp 0x40727c
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x409821
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov eax, 1
xor edx, edx
jmp 0x40a1cf
cmp ecx, 0xff
je 0x40b823
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40b99e
call fcn.00415cc0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
movzx eax, byte [ecx]
mov dword [esp + 0x2c], ecx
mov edx, eax
sub edx, 0x61
jne 0x40ad14
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x40ad14
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x40ad23
cmp ecx, 3
je 0x40b92c
cmp ecx, 0x3a
je 0x40ba22
cmp eax, 0x73
jne 0x40ada0
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x40b853
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x40b853
mov edx, ebx
mov eax, edi
call fcn.00403350
test eax, eax
jne 0x40ad71
jmp 0x40ad76
mov edx, dword [eax + 0xc]
test edx, edx
je 0x40ad76
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x40ad76
cmp dword [eax], 0x30
je 0x40ad60
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcd9
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004034c0
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040d610
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x40adee
cmp byte [esi + 1], 0x73
jne 0x40adee
cmp byte [esi + 2], 0
jne 0x40adee
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcde
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
cmp eax, 0x73
jne 0x40aecc
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x40aecc
cmp byte [esi + 2], 0
jne 0x40aecc
mov edx, 0x28
mov eax, edi
call fcn.004031b0
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bced
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
mov edx, 1
jmp 0x40a1cc
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.004031b0
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x40a606
movd xmm0, dword [edi + 0x114]
movd xmm6, eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], eax
mov edx, dword [edi + 0x110]
mov dword [edi + 0x114], ecx
punpckldq xmm0, xmm6
mov dword [esp + 0x40], 0
movq qword [esp + 0x38], xmm0
mov esi, dword [eax + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], esi
jmp 0x406eb7
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040be90
jmp 0x40710b
cmp eax, 0x6e
jne 0x408c1c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x408c1c
cmp byte [eax + 2], 0
je 0x40ae0f
jmp 0x408c1c
mov edx, ecx
jmp 0x4094bf
mov eax, edi
mov edx, 0x28
call fcn.004031b0
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040bde0
mov edx, 0x29
mov eax, edi
call fcn.004031b0
jmp 0x408c1c
cmp ebx, 7
jne 0x4071ac
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x4071ac
cmp dword [eax + 0x10], 1
jne 0x4071ac
cmp esi, 0x3e
jne 0x4071ac
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40bd65
cmp al, 0x31
jne 0x4071ac
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd60
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d1760
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00403220
test eax, eax
je case.0x406e1c.45
cmp dword [eax], 0x30
jne 0x40afc7
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40afc7
call fcn.00403060
test eax, eax
je case.0x406e1c.45
mov ebx, dword [edi + 0x110]
mov ecx, eax
mov eax, edi
mov edx, dword [ebx]
mov dword [edi + 0x110], edx
mov edx, 0x11
call fcn.0040bde0
mov dword [edi + 0x110], ebx
jmp case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd29
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
add edx, 1
pop edi
pop ebp
jmp fcn.004034c0
test eax, eax
je case.0x406e1c.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x40b035
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x406e1c.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bdb9
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004035e0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bc98
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bde0
test edx, edx
jne 0x40834e
jmp case.default.0x40b99e
mov byte [edi + eax], 0
mov edx, dword [edi + 0x10c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 0
jmp 0x40705f
movd xmm0, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
movd xmm6, eax
punpckldq xmm0, xmm6
mov dword [esp + 0x40], 0
lea edx, [esp + 0x38]
movq qword [esp + 0x38], xmm0
mov eax, dword [eax + 0xc]
mov dword [edi + 0x114], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], eax
jmp 0x406eb7
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x4097e9
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40a4a0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40855c
mov edx, 0x20
mov eax, edi
call fcn.004031b0
jmp 0x408548
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408517
mov edx, 0x20
mov eax, edi
call fcn.004031b0
jmp 0x408503
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x409396
mov edx, str.default_arg
mov eax, edi
call fcn.00403280
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.004034c0
mov edx, 0x4d1589
mov eax, edi
call fcn.00403280
mov ebx, dword [ebx + 0xc]
jmp 0x40714b
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x407f9d
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40735a
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x407327
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x409629
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], 0
mov esi, dword [eax + 0xc]
mov eax, dword [edi + 0x120]
mov dword [edi + 0x120], 0
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
test esi, esi
je 0x40b36b
cmp dword [esi], 0x59
je 0x40b737
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x40a7da
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x4087dd
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40a7dd
mov edx, 0x5b
mov eax, edi
call fcn.004031b0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd24
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
mov edx, 0x2d
mov eax, edi
call fcn.004031b0
jmp 0x40720f
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x4071f1
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
mov eax, dword [esp + 0x2c]
mov edx, 1
add dword [edi + 0x128], 1
mov ecx, dword [eax + 0xc]
xor eax, eax
jmp 0x4071c0
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40b91c
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x40b4e6
ja 0x40b4de
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x40b4e6
mov edx, eax
jmp 0x409509
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x40b4d7
cmp dword [esp + 0x28], 4
je case.0x406e1c.45
movdqu xmm0, xmmword [ecx - 0x10]
lea eax, [ecx - 0x10]
mov dword [ecx - 0xc], ebx
movd xmm6, eax
mov dword [ecx - 8], 0
movups xmmword [ecx], xmm0
movd xmm0, dword [esp + 0x24]
mov dword [edi + 0x114], ecx
add ecx, 0x10
punpckldq xmm0, xmm6
add dword [esp + 0x28], 1
movq qword [ecx - 0x14], xmm0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x40b4c6
jmp case.0x406e1c.45
movd xmm0, dword [esp + 0x24]
movd xmm7, ebx
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
punpckldq xmm0, xmm7
movq qword [esp + 0x38], xmm0
mov eax, dword [ebx + 0x10]
cmp dword [eax], 0x5e
jne 0x409512
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x10], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0xc], edx
mov dword [ecx + 0x10], eax
jmp 0x409512
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40bbbd
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x40b5ae
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40bbbd
cmp ecx, dword [ebx]
jne 0x40b5a0
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40b8ec
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x40b5eb
cmp ecx, eax
je 0x40b5e0
cmp edx, esi
je 0x40b5f1
mov eax, dword [eax + 4]
test eax, eax
je 0x40b8e4
mov edx, dword [eax]
cmp edx, ebx
jne 0x40b5d8
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00403220
test eax, eax
je case.0x406e1c.45
cmp dword [eax], 0x30
jne 0x406fc4
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40bc48
call fcn.00403060
test eax, eax
jne 0x406fc4
test ebx, ebx
je case.0x406e1c.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x406e1c.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x40b65b
sub eax, 0x63
cmp al, 1
ja 0x408ad2
mov edx, 0x11
mov eax, edi
call fcn.0040d610
mov edx, 0x3c
mov eax, edi
call fcn.004031b0
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040bde0
mov edx, 0x4d173b
mov eax, edi
call fcn.00403280
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bcca
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x407290
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40aa0f
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.004031b0
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x40b7aa
jmp 0x40b800
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040bde0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40b7cb
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x20
mov byte [edi + 0x104], 0x20
mov edx, dword [ebx]
cmp edx, 0x5d
jne 0x40b793
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.004035e0
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40b800
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x40b758
mov edx, 0x4d1575
mov eax, edi
call fcn.00403280
jmp 0x40b758
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40b776
mov edx, 0x3e
mov eax, edi
call fcn.004031b0
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x40a7c9
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
xor ecx, ecx
jmp 0x40acd6
cmp eax, 0x73
jne 0x40ada0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x40ada0
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x40b88e
jmp 0x40ada0
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40b94b
cmp dword [ebx], 0x30
jne 0x40b94b
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40b94b
cmp dword [eax], 0x4d
jne 0x40b880
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00403350
xor edx, edx
test eax, eax
jne 0x40b8d1
jmp 0x40b8d6
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40b8d6
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x40b8d6
cmp dword [eax], 0x30
je 0x40b8c0
add ecx, edx
jmp 0x40b883
mov ecx, 1
jmp 0x40acd6
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi + 0x110]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.00403220
test eax, eax
je 0x40b636
mov ebx, 1
jmp 0x40b60a
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x40b4bc
jmp case.0x406e1c.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x40ad2c
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x40ad2c
mov ebx, edx
jmp 0x40ad2c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bdc8
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004034c0
cmp esi, 0x3f
je 0x40bc6e
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040bde0
cmp ebx, 4
ja case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jmp dword [ebx*4 + 0x4d199c]
jne 0x40bdaa
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d1753
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
jne 0x40bdaf
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d1750
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
jne 0x40bdbe
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
jne 0x40bdc3
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004031b0
jne 0x40bcf7
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d1756
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040dda0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bccf
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d610
mov eax, edi
mov edx, 0x5b
call fcn.004031b0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
mov edx, 0x5d
mov eax, edi
call fcn.004031b0
jmp 0x408b9b
lea eax, [esp + 0x38]
xor esi, esi
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
jmp 0x406eb7
call fcn.00415d20
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x408b0e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x408b0e
mov edx, 0x28
mov eax, edi
call fcn.004031b0
jmp 0x408b0e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040bde0
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x40992c
jmp case.default.0x40b99e
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40bb2c
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040dda0
jmp 0x408b49
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00403280
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40bb72
mov edx, 0x11
mov eax, edi
call fcn.0040dda0
mov edx, 0x20
mov eax, edi
call fcn.004031b0
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040bde0
test esi, esi
je case.default.0x40b99e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd0b
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040dda0
mov dword [edi + 0x114], eax
jmp case.0x406e1c.45
cmp edx, dword [edi + 0x138]
jge case.0x406e1c.45
mov eax, dword [edi + 0x130]
mov ebx, dword [esp + 0x28]
lea eax, [eax + edx*8]
add edx, 1
mov dword [edi + 0x134], edx
mov dword [eax], ebx
lea ebx, [eax + 4]
mov eax, dword [edi + 0x110]
test eax, eax
je 0x40bc8a
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40bc2a
mov ecx, dword [edi + 0x13c]
mov esi, dword [eax + 4]
lea ecx, [ecx + edx*8]
add edx, 1
mov dword [edi + 0x140], edx
mov dword [ecx + 4], esi
mov dword [ebx], ecx
mov eax, dword [eax]
mov ebx, ecx
test eax, eax
je 0x40bc86
cmp dword [esp + 0x24], edx
jg 0x40bc08
jmp case.0x406e1c.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040d610
jmp 0x408b85
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40bdcd
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x407000
mov eax, edi
mov edx, 0x2d
call fcn.004031b0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40b977
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x40b5f5
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
mov eax, dword [esp + 0x10c]
sub eax, dword [0x51a10c]
jne 0x40bd91
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x4d175a
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403280
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
call fcn.00415d20
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x40b0d3