Function at 0x454e80
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x90
mov eax, dword [0x63d20c]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x94]
push ebx
push ebp
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x52c]
sub eax, dword [ebp + 0x524]
push esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x530]
push edi
mov edi, eax
sub edi, dword [ebp + 0x528]
cmp dword [esp + 0xac], 2
mov dword [esp + 0x4c], edi
jne 0x454f56
cmp byte [ebp + 0x1a], 0
jne 0x454f56
cmp eax, 0xc
jge 0x454f56
lea ebx, [eax + 1]
cmp ebx, 3
jge 0x454ef2
mov ebx, 3
lea ecx, [ebp + 0x200]
mov dword [esp + 0x1c], 0x43
mov esi, dword [ecx + 0x10c]
mov edx, esi
imul edx, ebx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, esi
add dword [ecx], eax
add ecx, 4
sub dword [esp + 0x1c], 1
jne 0x454f00
cmp dword [ebp + 0x10], 0
mov byte [ebp + 0x1a], 1
je 0x454f56
push 0xc
push ebx
push str.Hints__d__d
lea ecx, [esp + 0x68]
push 0x20
push ecx
call dword [sym.imp.MSVCR90.dll__snprintf]
lea edx, [esp + 0x70]
push edx
push ebp
call fcn.00452740
add esp, 0x1c
mov ecx, 1
add dword [ebp + 0x24], ecx
cmp dword [esp + 0xac], 2
mov eax, dword [ebp + 0x24]
je 0x454f8e
cmp dword [ebp + 0xf0], ecx
jg 0x454f7b
mov byte [ebp + 0x18], cl
jmp 0x455cb2
test eax, eax
jle 0x454f8e
mov eax, dword [esp + 0x20]
lea ecx, [edi + eax]
test ecx, ecx
je 0x455cb2
xor eax, eax
cmp edi, eax
mov byte [esp + 0x19], 0x20
mov byte [esp + 0x17], 0x20
mov byte [esp + 0x16], 0
mov dword [esp + 0x30], eax
mov byte [esp + 0x1a], al
mov dword [esp + 0x34], eax
jle 0x455588
mov eax, dword [ebp + 0x528]
add eax, dword [esp + 0x34]
xor edi, edi
mov cl, byte [ebp + eax*2 + 0x595]
mov dl, byte [ebp + eax*2 + 0x594]
mov esi, dword [ebp + eax*4 + 0x834]
mov byte [esp + 0x13], dl
mov byte [esp + 0x14], cl
shr cl, 4
and dl, 0xf0
or dl, cl
cmp eax, edi
mov ecx, dword [ebp + eax*4 + 0x6b4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x15], 0
jle 0x455030
mov eax, dword [ebp + eax*4 + 0x6b0]
add eax, 2
cmp ecx, eax
sete al
test al, al
je 0x455030
mov cl, dl
and cl, 0xcc
cmp cl, 0xcc
je 0x45502b
mov al, byte [esp + 0x1a]
and al, 0xcc
cmp al, 0xcc
jne 0x455030
mov byte [esp + 0x15], 1
mov cl, byte [esp + 0x13]
mov al, byte [esp + 0x14]
movzx edi, byte [esp + 0x14]
or byte [esp + 0x16], cl
and al, 0x80
xor al, cl
movzx ebx, cl
mov byte [esp + 0x27], al
mov eax, ebx
shl eax, 8
or eax, edi
mov byte [esp + 0x1a], dl
mov byte [esp + 0x18], 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x28], edi
cmp cl, 0x20
jae 0x45506e
and eax, 0xfff0
cmp eax, dword [ebp + 0xc8]
je 0x4553bf
cmp eax, dword [ebp + 0xcc]
je 0x4553bf
cmp eax, dword [ebp + 0xd0]
je 0x4553bf
cmp eax, dword [ebp + 0xd4]
je 0x4553bf
mov ecx, dword [ebp + 0xc4]
inc dword [esp + 0x30]
mov dword [ebp + ecx*4 + 0xc8], eax
mov eax, dword [ebp + 0xc4]
inc eax
and eax, 3
mov dword [ebp + 0xc4], eax
cmp byte [0x63e087], 0
mov byte [esp + 0x18], 1
jne 0x4550f3
mov ecx, dword [ebp + 0x1c]
lea edi, [ebp + ecx*4 + 0x200]
mov ecx, esi
mov eax, 0xf
sar eax, cl
add dword [edi], eax
mov ecx, dword [ebp + 0x20]
add dword [ebp + ecx*4 + 0x200], eax
lea ecx, [ebp + ecx*4 + 0x200]
cmp dword [ebp + 0xf0], 0
mov byte [esp + 0x1b], 0
mov dword [esp + 0x50], 0
jle 0x4552ac
movzx edx, dl
lea eax, [ebp + 0xf4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov edi, edi
mov ecx, dword [esp + 0x3c]
mov edi, dword [ecx]
mov edx, dword [edi*4 + 0x58c068]
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], edx
cmp edi, 0x3a
jne 0x455172
mov eax, dword [esp + 0x28]
shr eax, 3
mov ecx, ebx
and ecx, 0xe0
or ecx, eax
shr ecx, 3
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x3c]
test eax, ecx
jne 0x45516a
or ecx, eax
inc dword [ebp + 0x34]
mov dword [ebp + 0x3c], ecx
jmp 0x455172
mov dword [esp + 0x54], 2
mov edx, dword [esp + 0x38]
mov ecx, edi
imul ecx, ecx, 0x318
add ecx, 0x590318
cmp byte [edx + ecx + 0x218], 0
jne 0x4551c0
mov al, byte [esp + 0x13]
cmp al, byte [esp + 0x19]
jne 0x4551a6
mov cl, byte [esp + 0x14]
cmp cl, byte [esp + 0x17]
je 0x455251
mov edx, 0x258
mov ecx, esi
sar edx, cl
mov byte [esp + 0x1b], 1
sub dword [ebp + edi*4 + 0x200], edx
jmp 0x455251
movzx eax, byte [esp + 0x27]
mov edx, dword [esp + 0x28]
movzx edx, byte [edx + ecx + 0x118]
movzx eax, byte [eax + ecx + 0x18]
add eax, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + ecx + 0x218]
add eax, edx
mov edx, dword [esp + 0x38]
test byte [edx + ecx + 0x218], 1
je 0x45521c
mov edx, dword [esp + 0x28]
and ebx, 0x1f
and edx, 0x1f
shl ebx, 5
or ebx, edx
mov edx, dword [esp + 0x28]
shr edx, 5
and edx, 3
mov ecx, dword [ecx + edx*4]
movzx edx, byte [ebx + ecx]
mov ebx, dword [esp + 0x58]
add eax, edx
jmp 0x45521f
add eax, dword [ecx + 0x14]
mov ecx, dword [esp + 0x54]
sar eax, cl
mov ecx, esi
sar eax, cl
add dword [ebp + edi*4 + 0x200], eax
cmp byte [0x63e084], 0
je 0x455251
cmp dword [0x616938], edi
jne 0x455245
mov dword [esp + 0x1c], eax
cmp dword [0x61693c], edi
jne 0x455251
mov dword [esp + 0x40], eax
cmp byte [esp + 0x15], 0
je 0x45527b
mov eax, dword [esp + 0x48]
mov ecx, dword [eax*4 + 0x5ad4c0]
shr ecx, 0xa
test cl, 1
je 0x45527b
mov edx, 0xf
mov ecx, esi
sar edx, cl
add dword [ebp + edi*4 + 0x200], edx
mov eax, dword [esp + 0x50]
add dword [esp + 0x3c], 4
inc eax
cmp eax, dword [ebp + 0xf0]
mov dword [esp + 0x50], eax
jl 0x455120
cmp byte [esp + 0x1b], 0
je 0x4552ac
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x14]
mov byte [esp + 0x19], al
mov byte [esp + 0x17], cl
cmp dword [esp + 0x20], 0x10
jge 0x4552d4
mov eax, dword [esp + 0x28]
mov edx, ebx
shl edx, 8
movzx eax, byte [edx + eax + str.____________________________8_________________________888888888888898888898988998999998989_______98________________________________________________________________________________________________________________________________________888_88_________________b____________________________]
mov edx, 0xf
mov ecx, esi
sar edx, cl
add dword [ebp + eax*4 + 0x200], edx
mov dl, byte [ebp + 0x2d]
test dl, dl
jne 0x4552e4
cmp byte [ebp + 0x2c], dl
je 0x4553bf
mov ecx, dword [ebp]
mov edi, dword [esp + 0x2c]
xor al, al
lea ecx, [ecx + edi - 1]
mov dword [esp + 0x48], ecx
test dl, dl
jne 0x45534e
test byte [esp + 0x34], 7
je 0x45534c
lea edx, [ecx + 3]
cmp edx, dword [ebp + 4]
ja 0x45534c
movzx eax, byte [ecx + 1]
movsx edx, byte [eax + 0x5adc70]
movzx eax, byte [ecx]
movsx eax, byte [eax + 0x5adc70]
movzx ecx, byte [ecx + 2]
movsx ecx, byte [ecx + 0x5adc70]
shl eax, 5
or edx, eax
mov eax, dword [edx*8 + 0x5add70]
mov edx, dword [edx*8 + 0x5add74]
add ecx, ecx
call fcn.00552290
and eax, 3
cmp al, 1
setg al
jmp 0x45534e
mov al, 1
cmp byte [ebp + 0x2d], 0
jne 0x455358
test al, al
je 0x4553bf
and edi, 0xffffffe0
cmp dword [ebp + 0x28], edi
jg 0x4553bf
push ebp
push edi
call fcn.00454d70
add esp, 8
cmp byte [0x63e082], 0
mov byte [esp + 0x13], al
je 0x455387
cmp byte [ebp + 0x2d], 0
jne 0x455387
test al, al
je 0x455387
inc dword [0x63e0a0]
cmp byte [0x63e085], 0
je 0x4553b2
cmp byte [ebp + 0x2d], 0
jne 0x4553b2
cmp byte [esp + 0x13], 0
je 0x4553b2
mov edx, dword [ebp]
mov eax, dword [esp + 0x48]
push 2
push 0
push edx
push eax
call fcn.00452ab0
add esp, 0x10
mov cl, byte [esp + 0x13]
or byte [ebp + 0x2d], cl
add edi, 0x20
mov dword [ebp + 0x28], edi
mov edx, ebx
shr edx, 5
inc dword [ebp + edx*4 + 0x90]
cmp dword [ebp + 0x10], 0
lea eax, [ebp + edx*4 + 0x90]
je 0x455477
mov al, byte [esp + 0x18]
neg esi
sbb esi, esi
and esi, 0xd
movzx ecx, al
add esi, 0x20
neg ecx
sbb ecx, ecx
push esi
mov esi, dword [esp + 0x2c]
movzx edx, al
and ecx, 0xffffffc3
add ecx, 0x5d
push ecx
neg edx
push esi
sbb edx, edx
push ebx
and edx, 0xffffffc5
add edx, 0x5b
push edx
push str._c_02x_02x_c_c
lea eax, [esp + 0x74]
push 0x10
push eax
call dword [sym.imp.MSVCR90.dll__snprintf]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
imul edi, edi, 0x130
mov edx, dword [esp + 0x40]
mov edx, dword [ebp + edx*4 + 0x6b4]
shl ebx, 8
movzx eax, byte [ebx + esi + str.____________________________8_________________________888888888888898888898988998999998989_______98________________________________________________________________________________________________________________________________________888_88_________________b____________________________]
mov dword [edi + ecx], edx
mov ecx, dword [ebp + 0x10]
mov dword [edi + ecx + 4], eax
mov eax, dword [ebp + 0x10]
add esp, 0x20
lea edx, [esp + 0x5c]
push edx
lea ecx, [edi + eax + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, dword [ebp + 0x10]
lea edi, [edi + ecx + 0x24]
lea esi, [ebp + 0x200]
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
inc dword [ebp + 0x14]
cmp byte [0x63e084], 0
je 0x45551b
cmp dword [esp + 0x1c], 0
jne 0x455496
cmp dword [esp + 0x40], 0
je 0x45551b
mov eax, dword [esp + 0x40]
push eax
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x20]
setl dl
xor ecx, ecx
test eax, eax
setl cl
lea edx, [edx + edx + 0x2b]
push edx
push eax
lea ecx, [ecx + ecx + 0x2b]
push ecx
push str._c_d__c_d
lea edx, [esp + 0x90]
push 0x20
push edx
call dword [sym.imp.MSVCR90.dll__snprintf]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
imul edi, edi, 0x130
mov ecx, dword [eax + edi - 0x130]
add eax, edi
mov dword [eax], ecx
mov edx, dword [ebp + 0x10]
mov dword [edx + edi + 4], 0xffffffff
mov ecx, dword [ebp + 0x10]
add esp, 0x1c
lea eax, [esp + 0x7c]
push eax
lea ecx, [ecx + edi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov edx, dword [ebp + 0x10]
lea esi, [ebp + 0x200]
lea edi, [edx + edi + 0x24]
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
inc dword [ebp + 0x14]
mov eax, dword [esp + 0x34]
inc eax
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
jl 0x454fb3
mov edi, dword [esp + 0x30]
test edi, edi
jle 0x455588
test byte [esp + 0x16], 0x80
jne 0x455588
xor ecx, ecx
cmp dword [ebp + 0xf0], ecx
jle 0x455588
lea esi, [ebp + 0xf4]
lea ecx, [ecx]
mov eax, dword [esi]
mov edx, dword [eax*4 + 0x58c068]
mov edx, dword [edx*4 + 0x5ad4c0]
shr edx, 8
test dl, 1
je 0x45557c
mov edx, edi
shl edx, 4
sub edx, edi
neg edx
add edx, edx
add edx, edx
add dword [ebp + eax*4 + 0x200], edx
inc ecx
add esi, 4
cmp ecx, dword [ebp + 0xf0]
jl 0x455550
cmp dword [ebp + 0xb0], 0
je 0x45559f
mov eax, dword [esp + 0x44]
push ebp
push eax
call fcn.00454770
add esp, 8
cmp dword [esp + 0xac], 2
mov ecx, dword [esp + 0x44]
mov edx, dword [ebp + 0x52c]
mov eax, dword [ebp + 0x530]
mov dword [ebp + 8], ecx
mov dword [ebp + 0x524], edx
mov dword [ebp + 0x528], eax
jne 0x45575c
cmp dword [ebp + 0x48], 0
mov eax, 0xffffff88
je 0x4555dd
add dword [ebp + 0x208], eax
cmp dword [ebp + 0x64], 0
je 0x4555e9
add dword [ebp + 0x2ec], eax
cmp dword [ebp + 0x60], 0
mov eax, 0xffffed40
jne 0x455600
add dword [ebp + 0x208], eax
add dword [ebp + 0x2ec], eax
cmp dword [ebp + 0x80], 0
jne 0x45560f
add dword [ebp + 0x2ec], eax
mov eax, dword [ebp + 0x30]
cmp eax, 4
jge 0x455632
cmp eax, 3
jne 0x455628
add dword [ebp + 0x2e8], 0xfffffb50
jmp 0x455632
add dword [ebp + 0x2e8], 0xfffff6a0
cmp dword [ebp + 0x530], 1
jl 0x45570e
mov ecx, dword [ebp + 0xb0]
shr ecx, 3
test cl, 1
je 0x45570e
cmp byte [ebp + 0x594], 0x1b
jne 0x45570e
cmp byte [ebp + 0x595], 0x24
jne 0x45570e
mov eax, dword [ebp + 0x6b4]
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
add eax, edx
sub ecx, 3
cmp eax, ecx
jae 0x4556f7
mov cl, byte [eax + 2]
cmp cl, 0x29
jne 0x4556dc
cmp byte [eax + 3], 0x43
jne 0x4556af
add dword [ebp + 0x2a8], 0x258
mov eax, 0xfffffda8
add dword [ebp + 0x2b4], eax
add dword [ebp + 0x254], eax
jmp 0x45570e
cmp cl, 0x29
jne 0x4556dc
mov al, byte [eax + 3]
cmp al, 0x41
je 0x4556bf
cmp al, 0x47
jne 0x4556dc
add dword [ebp + 0x2b4], 0x258
mov eax, 0xfffffda8
add dword [ebp + 0x2a8], eax
add dword [ebp + 0x254], eax
jmp 0x45570e
cmp cl, 0x40
je 0x4556e6
cmp cl, 0x42
jne 0x45570e
add dword [ebp + 0x254], 0x258
mov eax, 0xfffffda8
jmp 0x455702
mov eax, 0xfffffda8
add dword [ebp + 0x254], eax
add dword [ebp + 0x2b4], eax
add dword [ebp + 0x2a8], eax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x45575c
mov edi, dword [ebp + 0x14]
imul edi, edi, 0x130
mov edx, dword [eax + edi - 0x130]
mov dword [eax + edi], edx
mov eax, dword [ebp + 0x10]
mov dword [eax + edi + 4], 0xffffffff
mov ecx, dword [ebp + 0x10]
push str.pre_final
lea ecx, [ecx + edi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov edx, dword [ebp + 0x10]
lea esi, [ebp + 0x200]
lea edi, [edx + edi + 0x24]
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
inc dword [ebp + 0x14]
push ebp
call fcn.00454b20
mov ebx, 1
add esp, 4
cmp dword [esp + 0xac], ebx
jne 0x4557c1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4557c1
mov edi, dword [ebp + 0x14]
imul edi, edi, 0x130
mov ecx, dword [eax + edi - 0x130]
mov dword [eax + edi], ecx
mov edx, dword [ebp + 0x10]
mov dword [edx + edi + 4], 0xffffffff
mov eax, dword [ebp + 0x10]
push str.slow_end
lea ecx, [eax + edi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov ecx, dword [ebp + 0x10]
lea edi, [ecx + edi + 0x24]
lea esi, [ebp + 0x200]
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
add dword [ebp + 0x14], ebx
cmp dword [ebp + 0xdc], 0x3a
mov eax, dword [ebp + 0xec]
mov esi, eax
mov dword [esp + 0x2c], eax
jne 0x4557dc
add esi, esi
mov dword [esp + 0x2c], esi
mov ebx, dword [ebp + 0xe4]
sub ebx, esi
cmp eax, 0x12c
mov dword [esp + 0x4c], ebx
jle 0x455808
cmp dword [esp + 0x30], 0
mov ecx, 0x12c
jne 0x455800
mov ecx, 0x96
sub eax, ecx
mov dword [ebp + 0xec], eax
xor eax, eax
cmp dword [ebp + 0xf0], eax
mov dword [ebp + 0xb0], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
jle 0x4558a5
lea edi, [ebp + 0xf4]
mov esi, edi
jmp 0x455834
mov ebx, dword [esp + 0x4c]
mov eax, dword [esi]
mov ecx, dword [ebp + eax*4 + 0x200]
cmp ecx, ebx
mov dl, 1
jge 0x455845
xor dl, dl
cmp dword [esp + 0xac], 1
jne 0x45586c
mov ebx, dword [eax*4 + 0x58c068]
test byte [ebx*4 + 0x5ad4c0], 1
je 0x45586c
test ecx, ecx
jg 0x45586c
cmp eax, dword [ebp + 0xdc]
jne 0x45588d
test dl, dl
je 0x45588d
mov edx, dword [eax*4 + 0x58c068]
mov ecx, dword [edx*4 + 0x5ad4c0]
or dword [ebp + 0xb0], ecx
inc dword [esp + 0x1c]
mov dword [edi], eax
add edi, 4
mov eax, dword [esp + 0x20]
inc eax
add esi, 4
cmp eax, dword [ebp + 0xf0]
mov dword [esp + 0x20], eax
jl 0x455830
mov esi, dword [esp + 0x2c]
cmp dword [ebp + 0x10], 0
je 0x455927
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._d_prune
lea ecx, [esp + 0x84]
push 0x20
push ecx
call dword [sym.imp.MSVCR90.dll__snprintf]
mov edi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
imul edi, edi, 0x130
mov ecx, dword [edx + edi - 0x130]
lea eax, [edx + edi]
mov dword [eax], ecx
mov edx, dword [ebp + 0x10]
mov dword [edx + edi + 4], 0xffffffff
mov ecx, dword [ebp + 0x10]
add esp, 0x10
lea eax, [esp + 0x7c]
push eax
lea ecx, [ecx + edi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov edx, dword [ebp + 0x10]
lea esi, [ebp + 0x200]
lea edi, [edx + edi + 0x24]
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
inc dword [ebp + 0x14]
cmp dword [esp + 0xac], 2
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0xf0], eax
jne 0x455bcb
cmp dword [ebp + 0x530], 0
mov ecx, 0x4b0
jne 0x455981
mov eax, dword [ebp + 0xdc]
cmp eax, 0x3a
je 0x455981
cmp eax, 0x2c
je 0x455981
cmp eax, 0x2d
je 0x455981
cmp eax, 0x2a
je 0x455981
cmp eax, 0x15
je 0x455981
cmp eax, 0x28
je 0x455981
mov dword [ebp + 0xdc], 0
add dword [ebp + 0x200], ecx
cmp dword [ebp + 0xa0], 0
mov eax, dword [ebp + 0xdc]
jle 0x4559f3
dec eax
cmp eax, 0x21
ja case.0x4559a1.2
movzx edx, byte [eax + 0x455ce0]
jmp dword [edx*4 + 0x455ccc]
mov dword [ebp + 0xdc], 4
add dword [ebp + 0x210], ecx
jmp case.0x4559a1.2
mov dword [ebp + 0xdc], 0xb
add dword [ebp + 0x22c], ecx
jmp case.0x4559a1.2
mov dword [ebp + 0xdc], 0x16
add dword [ebp + 0x258], ecx
jmp case.0x4559a1.2
mov dword [ebp + 0xdc], 0x1c
add dword [ebp + 0x270], ecx
jmp case.0x4559a1.2
cmp eax, 4
je 0x455a26
cmp eax, 0x16
je 0x455a14
cmp eax, 0x1c
jne case.0x4559a1.2
mov dword [ebp + 0xdc], 0xe
add dword [ebp + 0x238], ecx
jmp case.0x4559a1.2
mov dword [ebp + 0xdc], 0xd
add dword [ebp + 0x234], ecx
jmp case.0x4559a1.2
mov dword [ebp + 0xdc], 1
add dword [ebp + 0x204], ecx
cmp dword [ebp + 0x10], 0
je 0x455bcb
mov eax, dword [esp + 0x44]
sub eax, dword [ebp]
push eax
push str.final__d
lea eax, [esp + 0x64]
push 0x20
push eax
call dword [sym.imp.MSVCR90.dll__snprintf]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
imul esi, esi, 0x130
mov edx, dword [ecx + esi - 0x130]
lea eax, [ecx + esi]
mov dword [eax], edx
mov eax, dword [ebp + 0x10]
add esp, 0x10
mov dword [eax + esi + 4], 0xffffffff
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [edx + esi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov eax, dword [ebp + 0x10]
lea edi, [eax + esi + 0x24]
lea ebx, [ebp + 0x200]
mov ecx, 0x43
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0xe4]
sub esi, dword [ebp + 0xe8]
inc dword [ebp + 0x14]
cmp esi, 0x3c
jge 0x455b12
mov eax, 0x55555556
imul esi
mov ecx, dword [ebp + 0xdc]
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x66666667
imul esi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ecx*4 + 0x58c068]
push edx
call fcn.004580c0
push eax
lea eax, [edi + edi*4]
add eax, eax
sub esi, eax
push esi
push edi
push str._d._d__s
lea ecx, [esp + 0x70]
push 0x20
push ecx
call dword [sym.imp.MSVCR90.dll__snprintf]
add esp, 0x1c
jmp 0x455b82
cmp esi, 0x5dc
jge 0x455b59
mov edx, dword [ebp + 0xdc]
mov eax, dword [edx*4 + 0x58c068]
push eax
call fcn.004580c0
push eax
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str._d__s
lea edx, [esp + 0x6c]
push 0x20
push edx
call dword [sym.imp.MSVCR90.dll__snprintf]
add esp, 0x18
jmp 0x455b82
mov eax, dword [ebp + 0xdc]
mov ecx, dword [eax*4 + 0x58c068]
push ecx
call fcn.004580c0
push eax
push 0x579d58
lea edx, [esp + 0x68]
push 0x20
push edx
call dword [sym.imp.MSVCR90.dll__snprintf]
add esp, 0x14
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
imul esi, esi, 0x130
mov edx, dword [eax + esi - 0x130]
mov ecx, dword [ebp + 0xdc]
add eax, esi
mov dword [eax], edx
mov eax, dword [ebp + 0x10]
mov dword [eax + esi + 4], ecx
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [edx + esi + 8]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov eax, dword [ebp + 0x10]
lea edi, [eax + esi + 0x24]
mov ecx, 0x43
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x530]
mov byte [ebp + 0x19], 0
test eax, eax
jne 0x455bdd
mov byte [ebp + 0x19], 1
mov ecx, dword [ebp + 0xe4]
sub ecx, dword [ebp + 0xe8]
cmp ecx, dword [0x616934]
jl 0x455bf5
mov byte [ebp + 0x19], 1
cmp eax, 1
jne 0x455c1f
movzx edx, byte [ebp + 0x594]
movzx eax, byte [ebp + 0x595]
shl edx, 8
movzx ecx, byte [edx + eax + str.____________________________8_________________________888888888888898888898988998999998989_______98________________________________________________________________________________________________________________________________________888_88_________________b____________________________]
cmp ecx, dword [ebp + 0xdc]
jne 0x455c1f
mov byte [ebp + 0x19], 1
mov eax, dword [ebp + 0xf0]
cmp eax, 1
jne 0x455c30
mov byte [ebp + 0x19], al
mov byte [ebp + 0x18], al
cmp eax, 2
jne 0x455c5f
mov edx, dword [ebp + 0xf8]
mov ecx, dword [ebp + 0xf4]
mov eax, dword [edx*4 + 0x58c068]
mov edx, dword [ecx*4 + 0x58c068]
mov ecx, dword [edx*4 + 0x5ad260]
cmp ecx, dword [eax*4 + 0x5ad260]
jmp 0x455ca2
cmp eax, 3
jne 0x455cb2
mov edx, dword [ebp + 0xf4]
mov eax, dword [edx*4 + 0x58c068]
mov ecx, dword [ebp + 0xf8]
mov eax, dword [eax*4 + 0x5ad260]
mov edx, dword [ecx*4 + 0x58c068]
cmp eax, dword [edx*4 + 0x5ad260]
jne 0x455cb2
mov ecx, dword [ebp + 0xfc]
mov edx, dword [ecx*4 + 0x58c068]
cmp eax, dword [edx*4 + 0x5ad260]
jne 0x455cb2
cmp dword [ebp + 0x24], 3
jl 0x455cb2
mov byte [ebp + 0x18], 1
mov byte [ebp + 0x19], 1
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00551b9a
add esp, 0x90
ret