Function at 0x406840
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 [0x44b0f8]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x40687c.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40ae0e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x40687c.45
jmp dword [esi*4 + 0x433cdc]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x408aae
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40b022
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x40a368
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af30
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.0040b250
mov esi, dword [esp + 0x40]
test esi, esi
je 0x409c01
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40ae0e
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40ae0e
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40aefc
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x40698c
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x406992
cmp esi, edx
je 0x40a4c6
mov eax, dword [eax]
test eax, eax
jne 0x406970
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 0x406917
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b112
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.0040b250
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x409f2b
xor ebx, ebx
cmp dword [eax], 5
je 0x40a9ea
mov edx, dword [eax]
cmp edx, 0x24
je 0x40a2e5
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x40a531
cmp edx, 0x25
je 0x409c16
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 0x406917
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x406a9f
mov edx, 0x11
mov eax, edi
call fcn.0040b250
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40ae0e
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x40a500
mov edx, 0x433a35
mov eax, edi
call fcn.00402de0
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.0040b250
cmp dword [edi + 0x128], ebx
jne case.default.0x40ae0e
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40ae0e
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40ae0e
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.0040b250
mov esi, dword [esp + 0x40]
test esi, esi
je 0x40a327
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40ae0e
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040b250
mov edx, 0x433a38
mov eax, edi
call fcn.00402de0
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x40a696
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1a8
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b250
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x40a0b6
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40a39b
test ebx, ebx
je 0x406c0c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40adde
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a8e4
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.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a8af
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 0x40a89e
cmp ebx, 8
je 0x40a859
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b158
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.0040b250
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40a0bd
mov edx, 0x11
mov eax, edi
call fcn.0040b250
cmp dword [ebx], 0x56
je 0x40a0c6
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x406cff
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40ab3d
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 [0x44b0f8]
jne 0x40b11c
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b162
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.0040c8d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x406d73
mov edx, 0x11
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a72d
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.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a6f8
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ae0e
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x433c89
jmp 0x406e07
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 0x40985e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406de8
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, 0x433c89
je 0x40985e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406dea
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x433a72
jmp 0x406eab
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, 0x433a72
je 0x40988b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406e88
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 0x40988b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406e8a
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x433b56
jmp 0x406f47
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 0x4097cb
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406f28
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, 0x433b56
je 0x4097cb
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406f2a
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x433b05
jmp 0x406fe7
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 0x40993f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406fc8
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, 0x433b05
je 0x40993f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406fca
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x433b32
jmp 0x407087
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 0x409996
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407068
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, 0x433b32
je 0x409996
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40706a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x407123
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, 0x433ade
je 0x4099f0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407100
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, 0x433ade
je 0x4099f0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407102
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x433b42
jmp 0x4071bf
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 0x409a4a
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4071a0
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, 0x433b42
je 0x409a4a
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4071a2
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x433aef
jmp 0x40725f
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 0x409aa4
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407240
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 0x409aa4
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407242
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x433b17
jmp 0x4072f7
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 0x409b92
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4072d8
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, 0x433b17
je 0x409b92
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4072da
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x433acb
jmp 0x40739b
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, 0x433acb
je 0x409bbf
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407378
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 0x409bbf
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40737a
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x433ab8
jmp 0x40743b
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, 0x433ab8
je 0x409356
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407418
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 0x409356
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40741a
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x433be7
jmp 0x4074d7
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 0x409532
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4074b8
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 0x409532
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4074ba
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x433a96
jmp 0x40756f
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 0x409458
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407550
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 0x409458
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407552
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x433ca3
jmp 0x40760b
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, 0x433ca3
je 0x4095b9
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4075e8
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 0x4095b9
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4075ea
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x433a9f
jmp 0x4076a7
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 0x4093fe
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407688
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 0x4093fe
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40768a
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x433bcc
jmp 0x407743
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, 0x433bcc
je 0x40955f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407720
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 0x40955f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407722
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a6c3
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 [0x44b0f8]
jne 0x40b1ad
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.0040b250
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x433c91
jmp 0x40782f
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 0x409c50
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407810
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 0x40a797
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407812
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x433a8a
jmp 0x4078c7
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 0x409a1d
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4078a8
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 0x409a1d
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4078aa
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409e56
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x433cac
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x40799f
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 0x409230
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407980
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 0x409230
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407982
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x433a34
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x407a4f
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 0x409230
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407a30
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 0x409230
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407a32
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x409ec4
mov edx, ecx
mov eax, edi
call fcn.00402e90
xor edx, edx
test eax, eax
je 0x409ec4
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x40a4f3
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40a4f3
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x407ae0
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.0040b250
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40ae0e
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x433a35
jmp 0x407b74
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x433a37
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x40926d
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x407b50
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, 0x433a37
je 0x40926d
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x407b52
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b19e
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.0040b250
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x409f34
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x40a489
test eax, eax
je case.0x40687c.45
mov edx, ecx
jmp 0x407c48
test edx, edx
je 0x40a489
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x407c40
jmp case.0x40687c.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.0040b250
cmp byte [edi + 0x104], 0x3c
je 0x40a650
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a61b
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.0040b250
cmp byte [edi + 0x104], 0x3e
je 0x40a60a
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a5d5
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.0x40ae0e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x433cb5
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x407d5b
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, 0x433cb5
je case.default.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407d38
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407d3a
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x433cc7
jmp 0x407df7
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 0x409485
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407dd8
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 0x409485
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407dda
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x433cbe
jmp 0x407e8f
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407e70
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, 0x433cbe
je case.default.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407e72
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a7ef
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 0x407f5e
jmp 0x40996c
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040b250
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x40996c
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x407f40
mov eax, dword [edi + 0x100]
mov ebx, 0x433a35
jmp 0x407f97
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, 0x433a37
je 0x407f40
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407f78
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, 0x433a37
je 0x407f40
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407f7a
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x433b6d
jmp 0x408037
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 0x40958c
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408018
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, 0x433b6d
je 0x40958c
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40801a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x40687c.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x40687c.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d210
test eax, eax
jne case.default.0x40ae0e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d620
test eax, eax
jne case.default.0x40ae0e
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], 0x433c04
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 0x40afb0
mov edx, 0x11
mov eax, edi
call fcn.0040d010
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040d010
mov eax, edi
mov edx, 0x433c07
call fcn.00402de0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b103
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d010
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x40687c.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x40aab5
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d210
test eax, eax
jne case.default.0x40ae0e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d620
test eax, eax
jne case.default.0x40ae0e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40af35
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x433bfe
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 0x40821d
cmp dword [ecx], 3
je 0x40af8a
mov edx, 0x11
mov eax, edi
call fcn.0040d010
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x433c01
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40aec9
mov dword [esp + 4], 0x433bfe
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40b0a5
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040d010
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40ae0e
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40ae0e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b18a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x40a164
cmp eax, 0x35
je 0x40a36f
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1c6
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d010
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ae0e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40835f
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408340
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408342
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x433cd9
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x40840f
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 0x4099c3
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4083f0
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 0x4099c3
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4083f2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x433c3f
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x4084bb
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, 0x433c42
je case.default.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408498
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, 0x433c42
je case.default.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40849a
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433bfa
jmp 0x40855f
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 0x409a77
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408540
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 0x409a77
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408542
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433bfa
jmp 0x4085f7
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 0x4098b8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4085d8
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 0x4098b8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4085da
mov eax, dword [esp + 0x2c]
mov ebx, 0x433be8
mov esi, 0x433bf0
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 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 0x409ad1
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 + 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 0x409ad1
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408682
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x409fd0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b176
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c43
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
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.0x40ae0e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408777
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408758
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40875a
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x433bb5
jmp 0x40880f
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 0x409912
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4087f0
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, 0x433bb5
je 0x409912
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4087f2
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x433c33
jmp 0x4088af
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 0x409825
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408890
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 0x409825
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408892
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b16c
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.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a661
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.0040b250
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x409249
mov ebx, 0x433a35
mov esi, 0x433a37
jmp 0x4089d3
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 0x408980
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4089b8
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 0x408980
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4089ba
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.0x40687c.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 0x40688f
ja 0x406883
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x40688f
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x40a920
cmp edx, 4
je 0x40a9a8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
cmp dword [ebx], 4
jne 0x408aec
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 0x409e8b
sub ebx, 0x10
cmp ebx, esi
jne 0x408af5
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ae0e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408b57
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408b38
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408b3a
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a762
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 [0x44b0f8]
jne 0x40b180
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.0040b250
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x433c6c
jmp 0x408c5b
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, 0x433c6c
je 0x4096c5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408c38
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 0x4096c5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408c3a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x409276
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408cff
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 0x409276
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408ce0
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 0x409276
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408ce2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a56b
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.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a0d0
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40ae0e
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 0x408e63
jmp 0x40af5f
mov edx, dword [eax + 8]
test edx, edx
jne 0x408e5d
cmp ebx, 3
ja case.0x40687c.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 0x408e70
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x408e28
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40ae0e
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x408ec4
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.0040b300
cmp ebx, 1
jne 0x408ea8
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040c5d0
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x408f4d
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.0040b250
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40ae0e
mov edx, 0x20
mov eax, edi
call fcn.00402d10
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040bdc0
jmp case.default.0x40ae0e
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x408fa3
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, 0x433c3e
je 0x409852
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 ebx, 0x433c3e
je 0x409852
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408f82
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4336dc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.004138f0
test eax, eax
js 0x409047
add eax, 1
cmp eax, 0x19
ja 0x40a15f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40ae0e
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x409087
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.0x40ae0e
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409068
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.0x40ae0e
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40906a
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x433b9d
jmp 0x40911f
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 0x4096f2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409100
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, 0x433b9d
je 0x4096f2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409102
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x433b87
jmp 0x4091bf
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 0x4097f8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4091a0
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, 0x433b87
je 0x4097f8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4091a2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409ef6
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40ae0e
mov ebx, dword [esp + 0x2c]
jmp 0x407b10
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x4336dc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.004138f0
test eax, eax
js 0x4092b1
add eax, 1
cmp eax, 0x19
ja 0x40a15f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x409bec
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x4092ef
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 0x409bec
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x4092d0
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 0x409bec
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x4092d2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x433abd
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x40939f
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 0x40942b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409380
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 0x40942b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409382
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1b2
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1bc
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1a3
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.0040b250
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x433cce
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x4094cf
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4094b0
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4094b2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1b7
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b18f
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1c1
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.0040b250
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4336dc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.004138f0
test eax, eax
js 0x4095f6
add eax, 1
cmp eax, 0x19
ja 0x40a15f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x4096a0
lea esi, [ebx + eax]
jmp 0x409633
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 0x4096a0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409618
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 0x40a2bf
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40961a
cmp edx, 0xff
je 0x40a105
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b144
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.0040b250
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x433ba3
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov eax, dword [edi + 0x100]
jmp 0x40973b
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 0x40979e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409720
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, 0x433ba3
je 0x40979e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409722
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1f7
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b224
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b171
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b185
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.0040b250
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x408da1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b153
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b121
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.0040b250
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x4098e9
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.0040b250
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40ae0e
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b206
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b10d
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.0040b250
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x40a5a0
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b130
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b210
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b117
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1fc
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b126
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b20b
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b12b
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.0040b250
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x40a2c9
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40ae0e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x409b2f
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.0x40ae0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409b10
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.0x40ae0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409b12
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b215
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.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1cb
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.0040b250
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40ae0e
jmp 0x407931
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b300
jmp 0x406933
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 0x406917
jmp 0x4069be
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 0x409c99
cmp dword [esi], 0x59
je 0x40aba7
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x40a824
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x433c92
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x433c94
mov byte [edi + 0x104], 0x28
call fcn.0040b250
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 0x409d13
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 0x409d76
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409cf8
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, 0x433c94
je 0x409d76
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409cfa
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x4336dc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.004138f0
test eax, eax
js 0x409db3
add eax, 1
cmp eax, 0x19
ja 0x40a15f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x4096a0
lea esi, [ebx + eax]
jmp 0x409def
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 0x4096a0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409dd0
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 0x40a2bf
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409dd2
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 0x407945
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40ab72
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.0040b300
jmp 0x408b00
mov eax, edi
mov edx, 0x11
call fcn.0040d010
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b135
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c3f
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
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 0x409257
mov eax, dword [esp + 0x28]
jmp 0x406a24
test eax, eax
je 0x40a408
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x433a52
jmp 0x409f6d
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 0x40a45e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409f4e
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 0x40a45e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409f50
mov edx, str.parm
mov eax, edi
call fcn.00402de0
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x4336dc
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.004138f0
test eax, eax
js 0x40a00f
add eax, 1
cmp eax, 0x19
ja 0x40a15f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x40a13a
add esi, ebx
jmp 0x40a04f
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 0x40a13a
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x40a030
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 0x40ad4a
movzx eax, byte [ebx]
mov edx, 1
jmp 0x40a032
xor ebx, ebx
jmp 0x406c0c
cmp esi, 0x56
jne 0x406cff
mov ebx, 0x3a
jmp 0x406cdc
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 0x408dc1
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 0x4096af
cmp ecx, 0xff
je 0x40ac93
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ae0e
call fcn.00413830
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 0x40a184
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x40a184
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x40a193
cmp ecx, 3
je 0x40ad9c
cmp ecx, 0x3a
je 0x40ae92
cmp eax, 0x73
jne 0x40a210
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x40acc3
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x40acc3
mov edx, ebx
mov eax, edi
call fcn.00402e90
test eax, eax
jne 0x40a1e1
jmp 0x40a1e6
mov edx, dword [eax + 0xc]
test edx, edx
je 0x40a1e6
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x40a1e6
cmp dword [eax], 0x30
je 0x40a1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b149
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402ff0
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040c8d0
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x40a25e
cmp byte [esi + 1], 0x73
jne 0x40a25e
cmp byte [esi + 2], 0
jne 0x40a25e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b14e
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b250
cmp eax, 0x73
jne 0x40a33c
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x40a33c
cmp byte [esi + 2], 0
jne 0x40a33c
mov edx, 0x28
mov eax, edi
call fcn.00402d10
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b15d
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
mov edx, 1
jmp 0x4096ac
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.00402d10
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x409ae6
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 0x406917
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b300
jmp 0x406b6b
cmp eax, 0x6e
jne 0x4082fc
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x4082fc
cmp byte [eax + 2], 0
je 0x40a27f
jmp 0x4082fc
mov edx, ecx
jmp 0x408a77
mov eax, edi
mov edx, 0x28
call fcn.00402d10
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040b250
mov edx, 0x29
mov eax, edi
call fcn.00402d10
jmp 0x4082fc
cmp ebx, 7
jne 0x406c0c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x406c0c
cmp dword [eax + 0x10], 1
jne 0x406c0c
cmp esi, 0x3e
jne 0x406c0c
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40b1d5
cmp al, 0x31
jne 0x406c0c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b1d0
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.true
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00402d80
test eax, eax
je case.0x40687c.45
cmp dword [eax], 0x30
jne 0x40a437
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40a437
call fcn.00402bc0
test eax, eax
je case.0x40687c.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.0040b250
mov dword [edi + 0x110], ebx
jmp case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b199
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.00402ff0
test eax, eax
je case.0x40687c.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x40a4a5
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x40687c.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b229
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004030f0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b108
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.0040b250
test edx, edx
jne 0x407afe
jmp case.default.0x40ae0e
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 0x406abf
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 0x406917
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 0x408d89
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 0x409980
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 0x407cec
mov edx, 0x20
mov eax, edi
call fcn.00402d10
jmp 0x407cd8
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 0x407ca7
mov edx, 0x20
mov eax, edi
call fcn.00402d10
jmp 0x407c93
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 0x408966
mov edx, str.default_arg
mov eax, edi
call fcn.00402de0
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402ff0
mov edx, 0x433a49
mov eax, edi
call fcn.00402de0
mov ebx, dword [ebx + 0xc]
jmp 0x406bab
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 0x4077bd
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 0x406dba
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 0x406d87
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 0x408be1
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 0x40a7db
cmp dword [esi], 0x59
je 0x40aba7
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x409caa
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 0x407f0d
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 0x409cad
mov edx, 0x5b
mov eax, edi
call fcn.00402d10
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b194
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
mov edx, 0x2d
mov eax, edi
call fcn.00402d10
jmp 0x406c6f
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 0x406c51
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 0x406c20
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40ad8c
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x40a956
ja 0x40a94e
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x40a956
mov edx, eax
jmp 0x408ac1
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x40a947
cmp dword [esp + 0x28], 4
je case.0x40687c.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 0x40a936
jmp case.0x40687c.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 0x408aca
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 0x408aca
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40b02d
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x40aa1e
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40b02d
cmp ecx, dword [ebx]
jne 0x40aa10
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40ad5c
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x40aa5b
cmp ecx, eax
je 0x40aa50
cmp edx, esi
je 0x40aa61
mov eax, dword [eax + 4]
test eax, eax
je 0x40ad54
mov edx, dword [eax]
cmp edx, ebx
jne 0x40aa48
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00402d80
test eax, eax
je case.0x40687c.45
cmp dword [eax], 0x30
jne 0x406a24
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40b0b8
call fcn.00402bc0
test eax, eax
jne 0x406a24
test ebx, ebx
je case.0x40687c.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x40687c.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x40aacb
sub eax, 0x63
cmp al, 1
ja 0x4081b2
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
mov edx, 0x3c
mov eax, edi
call fcn.00402d10
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b250
mov edx, 0x433bfb
mov eax, edi
call fcn.00402de0
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b13a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
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 0x406cf0
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 0x409e9f
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.00402d10
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x40ac1a
jmp 0x40ac70
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b250
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40ac3b
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 0x40ac03
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.004030f0
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40ac70
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x40abc8
mov edx, 0x433a35
mov eax, edi
call fcn.00402de0
jmp 0x40abc8
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 0x40abe6
mov edx, 0x3e
mov eax, edi
call fcn.00402d10
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x409c99
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 0x40a146
cmp eax, 0x73
jne 0x40a210
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x40a210
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x40acfe
jmp 0x40a210
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40adbb
cmp dword [ebx], 0x30
jne 0x40adbb
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40adbb
cmp dword [eax], 0x4d
jne 0x40acf0
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00402e90
xor edx, edx
test eax, eax
jne 0x40ad41
jmp 0x40ad46
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40ad46
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x40ad46
cmp dword [eax], 0x30
je 0x40ad30
add ecx, edx
jmp 0x40acf3
mov ecx, 1
jmp 0x40a146
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.00402d80
test eax, eax
je 0x40aaa6
mov ebx, 1
jmp 0x40aa7a
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x40a92c
jmp case.0x40687c.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x40a19c
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x40a19c
mov ebx, edx
jmp 0x40a19c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b238
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402ff0
cmp esi, 0x3f
je 0x40b0de
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040b250
cmp ebx, 4
ja case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jmp dword [ebx*4 + 0x433e5c]
jne 0x40b21a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c13
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
jne 0x40b21f
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c10
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
jne 0x40b22e
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
jne 0x40b233
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d10
jne 0x40b167
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c16
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040d010
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b13f
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c8d0
mov eax, edi
mov edx, 0x5b
call fcn.00402d10
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
mov edx, 0x5d
mov eax, edi
call fcn.00402d10
jmp 0x40827b
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 0x406917
call fcn.00413890
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x4081ee
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x4081ee
mov edx, 0x28
mov eax, edi
call fcn.00402d10
jmp 0x4081ee
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b250
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x408ec4
jmp case.default.0x40ae0e
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40af9c
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040d010
jmp 0x408229
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00402de0
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40afe2
mov edx, 0x11
mov eax, edi
call fcn.0040d010
mov edx, 0x20
mov eax, edi
call fcn.00402d10
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b250
test esi, esi
je case.default.0x40ae0e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b17b
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040d010
mov dword [edi + 0x114], eax
jmp case.0x40687c.45
cmp edx, dword [edi + 0x138]
jge case.0x40687c.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 0x40b0fa
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40b09a
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 0x40b0f6
cmp dword [esp + 0x24], edx
jg 0x40b078
jmp case.0x40687c.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
jmp 0x408265
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40b23d
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x406a60
mov eax, edi
mov edx, 0x2d
call fcn.00402d10
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40ade7
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x40aa65
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b201
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.false
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402de0
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
call fcn.00413890
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x40a543