Function at 0x456fb3
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [esi]
add ecx, edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x114]
xor ebx, ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x114]
and byte [esi + 0x20], bl
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x74]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x28], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
call fcn.0045b32d
cmp dword [esi + 4], ebx
push 0x1c
pop eax
jne 0x457048
push eax
mov dword [esi + 4], eax
push dword [esi]
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
cmp eax, ebx
pop ecx
mov dword [esi], eax
je 0x45b1ac
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
cmp edi, dword [ebp - 0x20]
je 0x45b1f0
mov edi, dword [ebp - 0x18]
mov edx, 0x10000
cmp edi, dword [ebp - 0x20]
je 0x45b13a
movzx eax, byte [edi]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [0x498e40]
inc edi
and ebx, 1
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], ebx
je 0x457088
test ecx, ecx
je 0x457088
movzx eax, byte [ecx + eax]
mov dword [ebp + 0x10], eax
cmp eax, 0x2b
ja 0x458608
cmp dword [ebp + 0x10], 0x2a
jae 0x45ab02
cmp dword [ebp + 0x10], 0x23
mov eax, dword [ebp + 0x10]
ja 0x457129
cmp eax, 0x23
je 0x4570e1
cmp eax, 9
jb 0x458641
cmp eax, 0xa
jbe 0x4570d2
cmp eax, 0xb
jbe 0x458641
cmp eax, 0xd
jbe 0x4570d2
cmp eax, 0x20
jne 0x458641
test byte [ebp - 0x28], 2
je 0x458641
jmp 0x45aef1
test byte [ebp - 0x28], 2
je 0x459845
cmp edi, dword [ebp - 0x20]
je 0x45b1b6
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
je 0x45b13a
movzx eax, byte [edx]
inc edx
test ebx, ebx
mov dword [ebp - 0x18], edx
je 0x457113
test ecx, ecx
je 0x457113
movzx eax, byte [ecx + eax]
cmp eax, 0xa
je 0x45aef1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jne 0x4570f4
jmp 0x45aef1
sub eax, 0x24
je 0x4584e3
sub eax, 4
je 0x4579b0
dec eax
jne 0x458641
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], eax
je 0x45af02
and dword [ebp - 0x10], 0
cmp dword [ebp - 0xc], 0
je 0x4571e4
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4571cd
jmp 0x457172
mov edx, 0x10000
mov edi, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x457188
mov dword [esi + 4], edx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4571ae
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4571b6
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4571c1
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45716d
mov byte [ebx], 0xe
inc ebx
push ebx
push 8
push dword [ebp - 0xc]
mov dword [ebp - 4], ebx
call fcn.0045b807
add esp, 0xc
jmp 0x4571e7
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
lea edi, [eax - 4]
mov dword [ebp + 0xc], edi
mov eax, dword [edi]
cmp dword [ebp - 0x28], eax
je 0x457376
xor eax, dword [ebp - 0x28]
test al, 1
je 0x457281
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45726e
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457229
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45724f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457257
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457262
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45720e
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp + 0xc]
setne al
add eax, 0x1d
mov byte [ebx], al
inc ebx
mov dword [ebp - 4], ebx
mov eax, dword [edi]
xor eax, dword [ebp - 0x28]
cmp eax, 1
je 0x457376
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4572fb
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4572b6
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4572dc
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4572e4
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4572ef
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45729b
mov byte [ebx], 0x1f
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45736b
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457326
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45734c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457354
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45735f
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45730b
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [ebx], al
inc ebx
mov dword [ebp - 4], ebx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x4c], ebx
mov eax, dword [edi]
sub edi, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], edi
mov eax, dword [edi]
mov dword [ebp + 0x10], eax
sub eax, 0x21
je 0x457737
sub eax, 7
je 0x4575b9
sub eax, 0x12
je 0x45753a
sub eax, 3
je 0x4577d3
dec eax
jne 0x457965
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457423
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4573de
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x457404
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45740c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457417
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4573c3
mov eax, dword [ebp - 0x30]
mov byte [ebx], 0x23
inc ebx
mov edi, dword [esi]
lea edx, [eax - 4]
mov al, bl
mov dword [ebp + 0xc], edx
sub al, byte [edx]
mov ecx, dword [edx]
sub al, byte [esi]
sub al, 2
mov byte [ecx + edi], al
mov eax, dword [edx]
mov edi, dword [esi]
mov ecx, ebx
sub ecx, eax
sub ecx, edi
dec ecx
dec ecx
sar ecx, 8
mov byte [eax + edi + 1], cl
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4574c1
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457479
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45749f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4574a7
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4574b2
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45745e
mov edx, dword [ebp + 0xc]
and byte [ebx], 0
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457959
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4574f0
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x457516
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45751e
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457529
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4574d5
jmp 0x457956
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4575ad
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457564
mov dword [esi + 4], eax
push dword [esi + 4]
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x45758c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x457595
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x4575a1
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457546
mov byte [ebx], 0x1c
inc ebx
mov dword [ebp - 4], ebx
jmp 0x457965
mov cl, byte [ebp - 0x54]
mov edx, dword [esi]
sub edi, 4
sub cl, byte [edi - 4]
lea eax, [edi - 4]
mov dword [ebp + 0xc], eax
mov eax, dword [edi]
mov byte [eax + edx], cl
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45763b
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4575f6
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45761c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457624
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45762f
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4575db
mov byte [ebx], 0x1a
mov ecx, dword [esi + 4]
inc ebx
mov edi, 0x10000
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4576b2
mov eax, dword [esi]
cmp ecx, edi
mov dword [ebp - 0x24], eax
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x457669
mov dword [esi + 4], edi
push dword [esi + 4]
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x457691
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x45769a
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x4576a6
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457650
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [ebx], al
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457728
mov eax, dword [esi]
cmp ecx, edi
mov dword [ebp - 0x24], eax
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x4576df
mov dword [esi + 4], edi
push dword [esi + 4]
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x457707
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x457710
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x45771c
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4576c6
mov edi, dword [ebp + 0xc]
mov al, byte [ebp - 0x54]
sub al, byte [edi]
mov byte [ebx], al
jmp 0x4575b0
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4577a3
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45775e
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x457784
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45778c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457797
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457743
mov eax, dword [ebp - 0x30]
mov byte [ebx], 0x22
inc ebx
add eax, 0xfffffffc
mov edi, dword [esi]
mov cl, bl
sub cl, byte [eax]
mov edx, dword [eax]
mov dword [ebp - 0x30], eax
sub cl, byte [esi]
sub cl, 2
mov byte [edx + edi], cl
mov edi, dword [eax]
mov ecx, dword [esi]
mov edx, ebx
sub edx, edi
sub edx, ecx
dec edx
dec edx
sar edx, 8
mov byte [edi + ecx + 1], dl
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45783f
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4577fa
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x457820
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457828
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457833
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4577df
mov eax, dword [ebp - 0x30]
mov byte [ebx], 0x21
inc ebx
mov edi, dword [esi]
lea edx, [eax - 4]
mov al, bl
mov dword [ebp + 0xc], edx
sub al, byte [edx]
mov ecx, dword [edx]
sub al, byte [esi]
sub al, 2
mov byte [ecx + edi], al
mov eax, dword [edx]
mov edi, dword [esi]
mov ecx, ebx
sub ecx, eax
sub ecx, edi
dec ecx
dec ecx
sar ecx, 8
mov byte [eax + edi + 1], cl
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4578e1
mov edi, dword [esi]
cmp ecx, 0x10000
je 0x45b178
add ecx, ecx
mov eax, 0x10000
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457899
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4578bf
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4578c7
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4578d2
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45787a
mov edx, dword [ebp + 0xc]
and byte [ebx], 0
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457959
mov edi, dword [esi]
cmp ecx, 0x10000
je 0x45b178
lea eax, [ecx + ecx]
mov ecx, 0x10000
cmp eax, ecx
mov dword [esi + 4], eax
jle 0x457911
mov dword [esi + 4], ecx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x457937
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45793f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45794a
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4578f1
mov edx, dword [ebp + 0xc]
and byte [ebx], 0
inc ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x30], edx
mov edi, edx
mov eax, dword [esi]
mov ecx, dword [edi - 4]
sub edi, 4
add ecx, eax
sub edi, 4
mov dword [ebp - 0x14], ecx
mov ecx, dword [edi]
test ecx, ecx
je 0x457984
lea ecx, [ecx + eax - 1]
mov dword [ebp - 0xc], ecx
jmp 0x457988
and dword [ebp - 0xc], 0
sub edi, 4
mov dword [ebp - 0x30], edi
mov edi, dword [edi]
add edi, eax
cmp dword [ebp + 0x10], 0x21
mov dword [ebp - 8], edi
je 0x4579a8
cmp dword [ebp + 0x10], 0x3d
jne 0x45aef1
mov ebx, dword [ebp - 4]
mov dword [ebp - 8], ebx
jmp 0x45aef1
mov eax, dword [ebp - 0x28]
and dword [ebp - 0x34], 0
and dword [ebp - 0x64], 0
cmp edi, dword [ebp - 0x20]
mov dword [ebp - 0x6c], eax
je 0x45b13a
movzx eax, byte [edi]
inc edi
test ebx, ebx
je 0x4579d7
test ecx, ecx
je 0x4579d7
movzx eax, byte [ecx + eax]
cmp eax, 0x3f
jne 0x457afd
xor ebx, ebx
cmp edi, dword [ebp - 0x20]
je 0x45b13a
movzx edx, byte [edi]
inc edi
cmp edx, 0x3e
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x18], edi
ja 0x457a4d
cmp edx, 0x3d
jae 0x457b07
mov eax, edx
sub eax, 0x21
je 0x457b07
dec eax
dec eax
je 0x457a25
sub eax, 0xa
je 0x457a60
sub eax, 0xd
jne 0x45af1e
jmp 0x457b07
cmp edi, dword [ebp - 0x20]
je 0x45b13a
movzx eax, byte [edi]
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], edi
je 0x457a43
test ecx, ecx
je 0x457a43
movzx eax, byte [ecx + eax]
cmp eax, 0x29
jne 0x457a25
jmp 0x45aef1
cmp edx, 0x69
je 0x457a60
cmp edx, 0x6d
je 0x457a60
cmp edx, 0x78
jne 0x45af1e
push 1
pop eax
cmp edx, 0x29
je 0x457af9
cmp edx, 0x2d
je 0x457ada
cmp edx, 0x3a
je 0x457b07
cmp edx, 0x69
je 0x457abc
cmp edx, 0x6d
je 0x457a9d
cmp edx, 0x78
jne 0x45af3d
test ebx, ebx
je 0x457a97
and dword [ebp - 0x28], 0xfffffffd
jmp 0x457ae1
or dword [ebp - 0x28], 2
jmp 0x457ae1
test ebx, ebx
je 0x457aad
test byte [ebp - 0x28], 4
je 0x457ab7
and dword [ebp - 0x28], 0xfffffffb
jmp 0x457ab7
test byte [ebp - 0x28], 4
jne 0x457ab7
or dword [ebp - 0x28], 4
mov dword [ebp - 0x34], eax
jmp 0x457ae1
test ebx, ebx
je 0x457acc
test byte [ebp - 0x28], 1
je 0x457ad5
and dword [ebp - 0x28], 0xfffffffe
jmp 0x457ad5
test byte [ebp - 0x28], 1
jne 0x457ad5
or dword [ebp - 0x28], eax
mov dword [ebp - 0x64], eax
jmp 0x457ae1
cmp edx, 0x3a
mov ebx, eax
je 0x457b07
cmp edi, dword [ebp - 0x20]
je 0x45b13a
movzx edx, byte [edi]
inc edi
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x18], edi
jmp 0x457a63
push 0x23
jmp 0x457b03
dec edi
push 0x28
mov dword [ebp - 0x18], edi
pop edx
mov dword [ebp + 0x10], edx
cmp edx, 0x23
jne 0x457d00
cmp dword [ebp - 0x34], 0
je 0x457c02
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457b89
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457b44
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x457b6a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457b72
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457b7d
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457b29
mov byte [edi], 0x1f
mov ecx, dword [esi + 4]
inc edi
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457bf9
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457bb4
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x457bda
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457be2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457bed
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457b99
mov al, byte [ebp - 0x28]
mov byte [edi], al
inc edi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x64], 0
je 0x45aef1
test byte [ebp - 0x28], 1
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 4]
je 0x457c8c
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457c81
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x457c3a
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457c61
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457c69
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457c74
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457c24
mov eax, dword [ebp - 4]
mov byte [eax], 0x1d
jmp 0x459430
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x457cf5
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x457cae
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457cd5
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457cdd
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457ce8
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457c98
mov eax, dword [ebp - 4]
mov byte [eax], 0x1e
jmp 0x459430
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x70]
lea ecx, [edi + 0x20]
cmp ecx, eax
jb 0x457d85
sub eax, dword [ebp - 0x1c]
sar eax, 2
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov edi, eax
jne 0x457d50
shl edi, 3
push edi
call dword [sym.imp.MSVCRT.dll_malloc]
mov ebx, eax
pop ecx
test ebx, ebx
je 0x45b197
mov eax, dword [ebp + 0xc]
shl eax, 2
push eax
push dword [ebp - 0x1c]
push ebx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
jmp 0x457d69
shl edi, 3
push edi
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_realloc]
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x45b197
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
sar eax, 2
add edi, ebx
lea eax, [ebx + eax*4]
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x30], eax
mov edi, eax
mov ebx, dword [ebp - 4]
mov eax, ebx
sub eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 0xc]
add edi, 4
test eax, eax
je 0x457d9d
sub eax, dword [esi]
inc eax
jmp 0x457d9f
xor eax, eax
mov dword [edi], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [esi]
add edi, 4
mov dword [edi], eax
add edi, 4
cmp edx, 0x21
mov dword [ebp - 0x30], edi
je 0x457fec
cmp edx, 0x28
je 0x457e5d
cmp edx, 0x3a
je 0x457ddf
cmp edx, 0x3c
jbe 0x4582d4
cmp edx, 0x3e
jbe 0x457fec
jmp 0x4582d4
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x457e4b
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457e04
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457e2b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457e33
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457e3e
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457de9
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
and dword [ebp - 0x10], 0
mov byte [eax], 0x1b
jmp 0x4582d4
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x457ec9
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457e82
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457ea9
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457eb1
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457ebc
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457e67
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov byte [eax], 0x19
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ecx, dword [esi + 4]
inc eax
cmp eax, ecx
jl 0x457f41
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x457efa
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457f21
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457f29
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457f34
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457edf
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x54]
inc dword [ebp - 4]
mov byte [ecx], al
mov dword [edi], eax
add edi, 4
inc eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ecx, dword [esi + 4]
add edi, 4
inc eax
mov dword [ebp - 0x30], edi
cmp eax, ecx
jl 0x457fd1
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x457f8a
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x457fb1
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x457fb9
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x457fc4
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457f74
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp - 0x54], 0xff
jge 0x45b178
jmp 0x4582d4
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x458058
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458011
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458038
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458040
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45804b
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x457ff6
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov byte [eax], 0x20
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov dword [edi], eax
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ecx, dword [esi + 4]
add edi, 4
inc eax
mov dword [ebp - 0x30], edi
cmp eax, ecx
jl 0x4580dd
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458096
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4580bd
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4580c5
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4580d0
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45807b
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458155
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x45810e
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458135
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45813d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458148
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4580f8
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp + 0x10], 0x21
jne 0x4582d4
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
mov edi, 0x10000
inc eax
cmp eax, ecx
jl 0x4581d7
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x458190
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4581b7
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4581bf
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4581ca
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45817a
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov ecx, dword [ebp - 0x30]
add dword [ebp - 0x30], 4
mov byte [eax], 0xa
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ecx, dword [esi + 4]
inc eax
cmp eax, ecx
jl 0x458258
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x458211
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458238
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458240
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45824b
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4581fb
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4582cb
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x458284
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4582ab
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4582b3
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4582be
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45826e
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp - 0x34], 0
je 0x4583cb
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45834d
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458308
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45832e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458336
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458341
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4582ed
mov byte [edi], 0x1f
mov ecx, dword [esi + 4]
inc edi
mov dword [ebp - 4], edi
sub edi, dword [esi]
inc edi
cmp edi, ecx
jl 0x4583c0
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x458379
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4583a0
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4583a8
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4583b3
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458363
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x28]
inc dword [ebp - 4]
mov byte [ecx], al
cmp dword [ebp - 0x64], 0
mov edi, dword [ebp - 4]
je 0x4584bd
test byte [ebp - 0x28], 1
mov ecx, dword [esi + 4]
mov eax, edi
je 0x45844f
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45844a
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458405
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45842b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458433
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45843e
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4583ea
mov byte [edi], 0x1d
jmp 0x4584b9
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4584b6
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458471
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x458497
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45849f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4584aa
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458456
mov byte [edi], 0x1e
inc edi
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x10]
and dword [ebp - 0xc], 0
mov dword [ebp - 0x14], edi
mov dword [eax], ecx
mov ecx, dword [ebp - 0x6c]
add eax, 4
mov dword [eax], ecx
add eax, 4
and dword [ebp - 8], 0
mov dword [ebp - 0x30], eax
jmp 0x45aef1
test byte [esi + 0x18], 8
je 0x458562
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45855a
jmp 0x4584ff
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x458515
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45853b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458543
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45854e
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4584fa
mov byte [edi], 5
jmp 0x45aeed
cmp edi, dword [ebp - 0x20]
mov eax, edi
mov dword [ebp - 0x4c], eax
je 0x45858f
cmp byte [eax], 0x5c
jne 0x45858f
lea ecx, [eax + 1]
cmp ecx, dword [ebp - 0x20]
je 0x45858f
mov cl, byte [ecx]
cmp cl, 0x62
je 0x458585
cmp cl, 0x42
jne 0x45858f
inc eax
inc eax
cmp eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
jne 0x45856c
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458600
jmp 0x4585a5
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4585bb
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4585e1
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4585e9
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4585f4
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4585a0
mov byte [edi], 3
jmp 0x45aeed
mov eax, dword [ebp + 0x10]
sub eax, 0x2e
je 0x45ae76
sub eax, 0x11
je 0x45ab02
sub eax, 0x1c
je 0x459cb5
dec eax
je 0x458fe4
dec eax
dec eax
je 0x458ef4
sub eax, 0x1d
je 0x45878d
dec eax
je 0x458668
cmp dword [ebp + 0x10], 0x5d
jne 0x45864e
push str.regexp_has____without_escape
jmp 0x45865d
cmp dword [ebp + 0x10], 0x7d
jne 0x459845
push str.regexp_has___without_escape
call sym.ruby187g.exc_rb_warn
pop ecx
jmp 0x459845
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x4586db
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458694
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4586ba
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4586c2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4586cd
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x458679
lea eax, [ebx + 6]
push ebx
push eax
push dword [ebp - 0x14]
push 0xa
call fcn.0045b82b
and dword [ebp - 0x10], 0
add esp, 0x10
add ebx, 3
cmp dword [ebp - 0xc], 0
je 0x458708
push ebx
push 9
push dword [ebp - 0xc]
call fcn.0045b807
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
mov dword [ebp - 0xc], ebx
add eax, 3
cmp eax, ecx
jl 0x45877b
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458734
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45875a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458762
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45876d
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x458719
add ebx, 3
and dword [ebp - 8], 0
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
jmp 0x45aef1
cmp dword [ebp - 8], 0
je 0x45af5c
cmp edi, dword [ebp - 0x20]
je 0x45af7d
or dword [ebp + 0xc], 0xffffffff
or dword [ebp - 0x34], 0xffffffff
movzx ebx, byte [edi]
lea eax, [edi - 1]
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edi
je 0x4587c3
test ecx, ecx
je 0x4587c3
movzx ebx, byte [ecx + ebx]
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4587e2
push 4
push ebx
call edi
pop ecx
pop ecx
mov ecx, dword [0x498e40]
jmp 0x4587ef
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 4
test eax, eax
je 0x458829
cmp dword [ebp + 0xc], 0
jge 0x4587fd
and dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2 - 0x30]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x458829
movzx ebx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
je 0x4587c9
test ecx, ecx
je 0x4587c9
movzx ebx, byte [ecx + ebx]
jmp 0x4587c9
cmp ebx, 0x2c
jne 0x45888a
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x458890
movzx ebx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
je 0x45884b
test ecx, ecx
je 0x45884b
movzx ebx, byte [ecx + ebx]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x458864
push 4
push ebx
call edi
pop ecx
pop ecx
mov ecx, dword [0x498e40]
jmp 0x458871
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 4
test eax, eax
je 0x458890
mov eax, dword [ebp - 0x34]
test eax, eax
jge 0x45887e
xor eax, eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2 - 0x30]
mov dword [ebp - 0x34], eax
jmp 0x45882e
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0xc], 0
jl 0x458eb3
cmp ebx, 0x7d
jne 0x458eb3
mov edx, 0x7fff
cmp dword [ebp + 0xc], edx
jge 0x45afbb
mov ebx, dword [ebp - 0x34]
cmp ebx, edx
jge 0x45afbb
test ebx, ebx
jge 0x4588c5
mov ebx, edx
mov dword [ebp - 0x34], ebx
cmp dword [ebp + 0xc], ebx
jg 0x45af9c
mov edi, dword [ebp - 0x18]
and dword [ebp - 0x10], 0
cmp edi, dword [ebp - 0x20]
mov byte [ebp + 0x13], 1
je 0x458902
movzx eax, byte [edi]
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], edi
je 0x4588f3
test ecx, ecx
je 0x4588f3
movzx eax, byte [ecx + eax]
cmp eax, 0x3f
jne 0x4588fe
and byte [ebp + 0x13], 0
jmp 0x458902
dec edi
mov dword [ebp - 0x18], edi
cmp dword [ebp + 0xc], 0
jne 0x458921
cmp ebx, edx
mov byte [ebp - 0x29], 1
jne 0x458916
mov byte [ebp + 0xf], 1
jmp 0x458940
cmp ebx, 1
jne 0x45894a
and byte [ebp + 0xf], 0
jmp 0x458940
cmp dword [ebp + 0xc], 1
jne 0x45894a
cmp ebx, 1
je 0x45aef1
cmp ebx, 0x7fff
jne 0x45894a
and byte [ebp - 0x29], 0
mov byte [ebp + 0xf], 1
mov edx, 0x10000
jmp 0x45ab55
mov eax, dword [ebp - 0x34]
mov edi, 0x10000
test eax, eax
jne 0x4589da
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x4589c8
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x45897f
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4589a6
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4589ae
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4589b9
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x458969
mov eax, dword [ebp - 4]
push eax
lea ebx, [eax + 3]
push ebx
push dword [ebp - 8]
push 8
jmp 0x45adde
cmp dword [ebp + 0xc], eax
jne 0x458ca4
mov eax, dword [ebp - 4]
and dword [ebp - 0x24], 0
dec eax
cmp byte [eax], 0x1c
jne 0x4589fa
mov dword [ebp - 0x24], 1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
cmp byte [eax], 1
jne 0x458b62
movsx edx, byte [eax + 1]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x64], edx
sub ecx, eax
lea eax, [edx + 2]
cmp eax, ecx
jne 0x458b62
mov eax, dword [ebp + 0xc]
mov ecx, eax
imul ecx, edx
cmp ecx, 0x100
jge 0x458b62
dec eax
mov ebx, edx
imul ebx, eax
mov ecx, dword [esi + 4]
mov dword [ebp + 0x10], eax
mov eax, ebx
sub eax, dword [esi]
add eax, dword [ebp - 4]
cmp eax, ecx
jl 0x458aae
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458a63
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458a8a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458a92
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458a9d
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, dword [ebp - 4]
cmp edx, ecx
jge 0x458a48
mov edx, dword [ebp - 0x64]
mov al, dl
mov ecx, dword [ebp - 8]
imul byte [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov byte [ecx + 1], al
test ebx, ebx
je 0x458ade
lea edi, [ecx + 2]
jmp 0x458ac8
mov edx, dword [ebp - 0x64]
push edx
push edi
push dword [ebp - 4]
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp - 0x64]
add esp, 0xc
add dword [ebp - 4], eax
dec ebx
jne 0x458ac5
cmp dword [ebp - 0x24], 0
je 0x45aef1
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458b57
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x458b10
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458b37
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458b3f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458b4a
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458afa
mov eax, dword [ebp - 4]
mov byte [eax], 0x1c
jmp 0x459430
mov eax, dword [ebp + 0xc]
cmp eax, 5
jge 0x458c9b
mov ebx, dword [ebp - 4]
sub ebx, dword [ebp - 8]
cmp ebx, 0xa
mov dword [ebp - 0x6c], ebx
jge 0x458c9b
dec eax
mov ecx, dword [esi + 4]
imul ebx, eax
mov dword [ebp + 0x10], eax
mov eax, ebx
sub eax, dword [esi]
add eax, dword [ebp - 4]
cmp eax, ecx
jl 0x458bf8
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458bb0
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458bd7
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458bdf
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458bea
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, dword [ebp - 4]
cmp edx, ecx
jge 0x458b95
cmp dword [ebp + 0x10], 0
je 0x458c19
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x6c]
push ebx
push dword [ebp - 8]
push dword [ebp - 4]
call sub.MSVCRT.dll_memcpy
add dword [ebp - 4], ebx
add esp, 0xc
dec edi
jne 0x458c01
cmp dword [ebp - 0x24], 0
je 0x45aef1
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458b57
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x458c4f
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458c76
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458c7e
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458c89
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458c39
jmp 0x458b57
cmp dword [ebp - 0x24], 0
je 0x458ca4
inc dword [ebp - 4]
mov ebx, dword [ebp - 0x34]
dec ebx
neg ebx
sbb ebx, ebx
and ebx, 0xa
add ebx, 0xa
cmp dword [ebp + 0xc], 0
jne 0x458d51
cmp byte [ebp + 0x13], 0
jne 0x458d51
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x458d39
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458cf0
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458d17
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458d1f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458d2a
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x458cd5
mov eax, dword [ebp - 4]
push eax
lea edi, [eax + 3]
push edi
push dword [ebp - 8]
push 0x11
call fcn.0045b82b
add esp, 0x10
mov dword [ebp - 4], edi
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, dword [ebp - 4]
cmp eax, ecx
jb 0x458dc2
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458d7a
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x458da1
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458da9
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458db4
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, dword [ebp - 4]
cmp edx, ecx
jae 0x458d5f
push dword [ebp + 0xc]
shr ebx, 1
push dword [ebp - 4]
add ebx, dword [ebp - 4]
push ebx
push dword [ebp - 8]
push 0xf
call fcn.0045b883
push 5
pop edi
push dword [ebp + 0xc]
add dword [ebp - 4], edi
push edi
push dword [ebp - 4]
push dword [ebp - 8]
push 0x14
call fcn.0045b8ad
add dword [ebp - 4], edi
add esp, 0x28
cmp dword [ebp - 0x34], 1
jle 0x45aef1
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, edi
cmp eax, ecx
jl 0x458e71
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x458e2a
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x458e50
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458e58
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458e63
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 5
cmp edx, ecx
jge 0x458e0f
mov edi, dword [ebp - 0x34]
lea eax, [edi - 1]
push eax
mov eax, dword [ebp - 8]
add eax, 5
push eax
mov al, byte [ebp + 0x13]
neg al
sbb eax, eax
and al, 0xfd
add eax, 0x13
push eax
push ebx
call fcn.0045b852
add ebx, 5
dec edi
mov eax, ebx
push edi
sub eax, dword [ebp - 8]
push eax
push ebx
push dword [ebp - 8]
push 0x14
call fcn.0045b8ad
add esp, 0x24
add ebx, 5
jmp 0x45ade6
push str.regexp_has_invalid_interval
call sym.ruby187g.exc_rb_warn
mov eax, dword [ebp + 0x10]
pop ecx
cmp eax, dword [ebp - 0x20]
je 0x45b13a
movzx ecx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x18], eax
je 0x459842
mov eax, dword [0x498e40]
test eax, eax
je 0x459842
movzx eax, byte [eax + ecx]
jmp 0x45983f
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
test byte [esi + 0x18], 8
mov eax, edi
je 0x458f73
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458f6b
jmp 0x458f10
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x458f26
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x458f4c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458f54
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458f5f
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458f0b
mov byte [edi], 4
jmp 0x45aeed
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x458fdc
jmp 0x458f81
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x458f97
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x458fbd
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x458fc5
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x458fd0
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x458f7c
mov byte [edi], 2
jmp 0x45aeed
cmp edi, dword [ebp - 0x20]
je 0x45afda
mov ebx, dword [ebp - 0x18]
movzx edi, byte [ebx]
inc ebx
cmp edi, 0x57
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x18], ebx
ja 0x459438
je 0x4593b8
cmp edi, 0x43
ja 0x459322
je 0x459466
cmp edi, 0x30
je 0x459307
jbe 0x459838
cmp edi, 0x39
jbe 0x459136
cmp edi, 0x41
je 0x4590bc
cmp edi, 0x42
jne 0x459838
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4590b1
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x45906a
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459091
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459099
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4590a4
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459054
mov eax, dword [ebp - 4]
mov byte [eax], 0x2a
jmp 0x459430
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45912b
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x4590e4
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45910b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459113
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45911e
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4590ce
mov eax, dword [ebp - 4]
mov byte [eax], 4
jmp 0x459430
dec ebx
xor eax, eax
cmp ebx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], eax
je 0x4591af
movzx edi, byte [ebx]
inc ebx
cmp dword [ebp - 0x24], eax
mov dword [ebp - 0x18], ebx
je 0x45915e
cmp ecx, eax
je 0x45915e
movzx edi, byte [ecx + edi]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45917b
push 4
push edi
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
mov ecx, dword [0x498e40]
jmp 0x459188
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + edi*2]
and eax, 4
test eax, eax
je 0x4591af
mov eax, dword [ebp - 0x44]
cmp ebx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea eax, [edi + eax*2 - 0x30]
mov dword [ebp - 0x44], eax
je 0x4591af
movzx edi, byte [ebx]
inc ebx
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], ebx
je 0x45915e
test ecx, ecx
jmp 0x459158
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4591c6
push 4
push edi
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x4591d3
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + edi*2]
and eax, 4
test eax, eax
jne 0x4591db
dec ebx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x44]
cmp eax, 9
jbe 0x459215
cmp eax, dword [ebp - 0x54]
jb 0x459215
lea eax, [ebp - 0x50]
push eax
push 3
push dword [ebp - 0x4c]
call sym.ruby187g.exc_ruby_scan_oct
mov ecx, dword [ebp - 0x50]
and eax, 0xff
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x4c]
add ecx, eax
add esp, 0xc
and dword [ebp - 0x44], 0
mov dword [ebp - 0x18], ecx
jmp 0x459911
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov dword [ebp - 8], eax
sub eax, dword [esi]
mov edi, 0x10000
inc eax
cmp eax, ecx
jl 0x459287
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x459240
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459267
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45926f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45927a
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45922a
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov byte [eax], 0x24
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ecx, dword [esi + 4]
inc eax
cmp eax, ecx
jl 0x4592fa
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x4592b3
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4592da
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4592e2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4592ed
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45929d
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x44]
mov byte [ecx], al
jmp 0x459430
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x50]
push eax
push 2
push ebx
call sym.ruby187g.exc_ruby_scan_oct
add esp, 0xc
mov dword [ebp + 0x10], eax
jmp 0x45990b
cmp edi, 0x44
je 0x459591
cmp edi, 0x47
je 0x459341
cmp edi, 0x4d
je 0x459466
cmp edi, 0x53
jmp 0x45945b
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4593b0
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x459369
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459390
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459398
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4593a3
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459353
mov eax, dword [ebp - 4]
mov byte [eax], 7
jmp 0x459430
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov dword [ebp - 8], eax
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45942a
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x4593e3
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45940a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459412
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45941d
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4593cd
mov eax, dword [ebp - 4]
mov byte [eax], 0x26
inc dword [ebp - 4]
jmp 0x45aef1
cmp edi, 0x73
ja 0x459822
je 0x459591
mov eax, edi
sub eax, 0x5a
je 0x45950d
sub eax, 8
je 0x459493
dec eax
je 0x459466
dec eax
je 0x459591
jmp 0x459838
lea eax, [ebp - 0x4c]
dec ebx
push eax
mov dword [ebp - 0x4c], ebx
push dword [ebp - 0x20]
push ebx
call fcn.0045b6fc
add esp, 0xc
cmp eax, 0xff
mov dword [ebp + 0x10], eax
ja 0x45b075
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
jmp 0x459911
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459502
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x4594bb
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4594e2
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4594ea
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4594f5
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4594a5
mov eax, dword [ebp - 4]
mov byte [eax], 0x29
jmp 0x459430
test byte [esi + 0x18], 8
jne 0x459871
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459586
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x45b178
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x45953f
mov dword [esi + 4], ebx
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459566
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45956e
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459579
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459529
mov eax, dword [ebp - 4]
mov byte [eax], 6
jmp 0x459430
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, 0x29
cmp eax, ecx
jle 0x45960b
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4595c0
mov dword [esi + 4], eax
push dword [esi + 4]
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x4595e8
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x4595f1
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x4595fd
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 0x29
cmp edx, ecx
jg 0x4595a2
cmp edi, 0x73
mov dword [ebp - 8], ebx
je 0x459689
cmp edi, 0x64
je 0x459689
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459684
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45963f
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x459665
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45966d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459678
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459624
mov byte [ebx], 0x18
jmp 0x4596f8
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4596f5
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4596b0
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4596d6
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4596de
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4596e9
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459695
mov byte [ebx], 0x17
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459765
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x459720
mov dword [esi + 4], eax
push dword [esi + 4]
push edi
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x459746
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45974e
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459759
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459705
mov byte [ebx], 0x20
inc ebx
push 0x22
push 0
push ebx
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp dword [ebp + 0x10], 0x73
je 0x4597b3
cmp dword [ebp + 0x10], 0x53
je 0x4597b3
mov dword [ebp + 0x10], 0x30
mov dword [ebp + 0xc], 0xa
mov eax, dword [ebp + 0x10]
push 8
mov ecx, eax
shr ecx, 3
cdq
lea edi, [ecx + ebx]
pop ecx
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [edi], al
inc dword [ebp + 0x10]
dec dword [ebp + 0xc]
jne 0x459790
jmp 0x4597bb
or byte [ebx + 4], 1
or byte [ebx + 1], 0x36
cmp byte [ebx - 1], 0
jle 0x4597d7
mov al, byte [ebx - 1]
movsx ecx, al
cmp byte [ecx + ebx - 1], 0
jne 0x4597d7
dec al
test al, al
mov byte [ebx - 1], al
jg 0x4597c1
mov cl, byte [ebx - 1]
cmp cl, 0x20
je 0x459801
xor edx, edx
lea eax, [ebx + 0x20]
mov dh, byte [ebx + 0x21]
mov dl, byte [eax]
lea edx, [edx*8 + 2]
push edx
push eax
movzx eax, cl
add eax, ebx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov cl, byte [ebx - 1]
xor edx, edx
movzx eax, cl
mov dh, byte [eax + ebx + 1]
add eax, ebx
mov dl, byte [eax]
movsx eax, cl
add eax, ebx
lea eax, [eax + edx*8 + 2]
mov dword [ebp - 4], eax
jmp 0x45aef1
mov eax, edi
sub eax, 0x77
je 0x459c38
dec eax
je 0x4598eb
dec eax
dec eax
je 0x459871
push edi
call fcn.0045b6b0
pop ecx
mov dword [ebp + 0x10], eax
mov edi, dword [ebp - 0x18]
movzx eax, byte [ebp + 0x10]
mov ecx, dword [sym.ruby187g.exc_re_mbctab]
and dword [ebp - 0x38], 0
cmp byte [eax + ecx], 0
je 0x45991b
mov eax, edi
mov dword [ebp - 0x38], 1
sub eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
jmp 0x45991b
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4598e0
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x459899
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4598c0
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4598c8
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4598d3
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459883
mov eax, dword [ebp - 4]
mov byte [eax], 5
jmp 0x459430
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x50]
push eax
push 2
push ebx
call sym.ruby187g.exc_ruby_scan_hex
add esp, 0xc
cmp dword [ebp - 0x50], 0
mov dword [ebp + 0x10], eax
je 0x45b075
add ebx, dword [ebp - 0x50]
mov dword [ebp - 0x18], ebx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x48], 1
movzx eax, byte [ebp + 0x10]
mov ecx, dword [sym.ruby187g.exc_re_mbctab]
mov edx, dword [ebp - 0x10]
mov dword [ebp + 0xc], eax
movzx eax, byte [eax + ecx]
add eax, edi
test edx, edx
je 0x459976
movsx ecx, byte [edx]
mov edi, dword [ebp - 4]
lea edx, [ecx + edx + 1]
cmp edx, edi
jne 0x459979
mov edx, dword [ebp - 0x44]
neg edx
sbb edx, edx
add edx, 0x7f
cmp ecx, edx
jge 0x459979
cmp eax, dword [ebp - 0x20]
jae 0x459a6a
mov al, byte [eax]
cmp al, 0x2b
je 0x459979
cmp al, 0x3f
je 0x459979
cmp al, 0x2a
je 0x459979
cmp al, 0x5e
je 0x459979
cmp al, 0x7b
jne 0x459a6a
jmp 0x459979
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
mov dword [ebp - 8], edi
inc eax
cmp eax, ecx
jl 0x4599e8
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4599a3
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4599c9
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4599d1
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4599dc
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459988
mov byte [edi], 1
mov ecx, dword [esi + 4]
inc edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], edi
sub edi, dword [esi]
inc edi
cmp edi, ecx
jl 0x459a5e
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x459a17
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459a3e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459a46
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459a51
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459a01
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
mov edi, dword [ebp - 4]
cmp dword [ebp - 0x48], 0
jne 0x459a79
cmp dword [ebp + 0x10], 0xff
jne 0x459af2
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459ae5
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x459aa0
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x459ac6
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459ace
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459ad9
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459a85
mov eax, dword [ebp - 0x10]
or byte [edi], 0xff
inc edi
inc byte [eax]
and dword [ebp - 0x48], 0
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459b5e
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x459b19
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x459b3f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459b47
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459b52
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459afe
mov al, byte [ebp + 0x10]
mov byte [edi], al
mov eax, dword [ebp - 0x10]
inc edi
inc byte [eax]
cmp dword [ebp - 0x38], 0
mov dword [ebp - 4], edi
je 0x45aef1
mov eax, dword [sym.ruby187g.exc_re_mbctab]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [ebp + 0xc], eax
je 0x45aef1
mov edi, 0x10000
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x45b13a
movzx ecx, byte [eax]
inc eax
mov dword [ebp + 0x10], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459c15
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x459bce
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459bf5
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459bfd
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459c08
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459bb8
mov ecx, dword [ebp - 4]
mov al, byte [ebp + 0x10]
inc dword [ebp - 4]
mov byte [ecx], al
mov eax, dword [ebp - 0x10]
inc byte [eax]
mov eax, dword [ebp + 0xc]
dec dword [ebp + 0xc]
test eax, eax
jne 0x459b95
jmp 0x45aef1
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov dword [ebp - 8], eax
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459caa
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x45b178
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x459c63
mov dword [esi + 4], edi
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459c8a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459c92
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459c9d
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459c4d
mov eax, dword [ebp - 4]
mov byte [eax], 0x25
jmp 0x459430
cmp edi, dword [ebp - 0x20]
je 0x45aff9
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 0x29
cmp eax, ecx
jle 0x459d31
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x459ce3
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459d0a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459d12
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459d1d
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
add edx, 0x29
cmp edx, ecx
mov edx, 0x10000
jg 0x459ccd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
cmp byte [ecx], 0x5e
mov ecx, dword [esi + 4]
jne 0x459db9
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459dad
jmp 0x459d50
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x459d66
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459d8d
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459d95
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459da0
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459d4b
mov edi, dword [ebp - 4]
mov byte [edi], 0x18
inc edi
inc dword [ebp - 0x18]
jmp 0x459e2b
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459e24
jmp 0x459dc7
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x459ddd
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459e04
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459e0c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459e17
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459dc2
mov edi, dword [ebp - 4]
mov byte [edi], 0x17
inc edi
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x4c], eax
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x459e9d
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x459e58
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x459e7e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459e86
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459e91
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x459e3d
mov byte [edi], 0x20
xor ebx, ebx
inc edi
push 0x22
push ebx
push edi
mov dword [ebp - 4], edi
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 4]
or dword [ebp + 0xc], 0xffffffff
xor ecx, ecx
mov ch, byte [eax + 0x21]
mov cl, byte [eax + 0x20]
mov eax, ecx
test eax, eax
jne 0x459ed8
cmp dword [0x498e44], ecx
je 0x459f4d
mov ecx, dword [esi + 4]
lea edi, [eax*8 + 0x2a]
mov eax, ecx
add eax, dword [esi]
mov edx, dword [ebp - 4]
lea edx, [edi + edx + 1]
cmp edx, eax
jbe 0x459f4d
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x459f0c
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x459f33
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x459f3b
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x459f46
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
add eax, ecx
jmp 0x459ee6
cmp dword [ebp - 0x68], 0
je 0x459f5d
cmp dword [ebp - 0x34], 0
jne 0x45b018
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x45b13a
mov ecx, eax
movzx ebx, byte [ecx]
inc ecx
cmp ebx, 0x5d
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x18], ecx
jne 0x459f9d
mov eax, dword [ebp - 0x4c]
inc eax
cmp ecx, eax
jne 0x45aa8f
cmp ecx, dword [ebp - 0x20]
je 0x45b037
push str.character_class_has____without_escape
call sym.ruby187g.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], 0
je 0x459fb1
cmp ebx, 0x2d
jne 0x459fb1
cmp byte [ecx], 0x5d
jne 0x45b056
mov edx, dword [sym.ruby187g.exc_re_mbctab]
movzx eax, bl
mov al, byte [eax + edx]
test al, al
je 0x45a025
movzx eax, al
add ecx, eax
cmp ecx, dword [ebp - 0x20]
jae 0x45b13a
cmp dword [0x498e44], 3
jne 0x45a00b
push 6
pop ecx
push 1
sub ecx, eax
pop edx
shl edx, cl
mov ecx, eax
dec edx
and ebx, edx
dec eax
test ecx, ecx
mov dword [ebp + 0x10], ebx
je 0x45a01c
inc eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 0x10]
shl edx, 6
mov cl, byte [ecx]
and ecx, 0x3f
or ecx, edx
inc dword [ebp - 0x18]
dec eax
mov dword [ebp + 0x10], ecx
jne 0x459ff0
jmp 0x45a01c
mov eax, dword [ebp - 0x18]
shl ebx, 8
movzx eax, byte [eax]
or ebx, eax
inc dword [ebp - 0x18]
mov dword [ebp + 0x10], ebx
inc dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp + 0x10]
and dword [ebp - 0x34], 0
cmp ebx, 0x2d
jne 0x45a05e
mov eax, dword [ebp - 0x4c]
inc eax
cmp ecx, eax
je 0x45a03b
cmp byte [ecx], 0x5d
jne 0x45a050
cmp byte [ecx], 0x2d
jne 0x45a046
cmp byte [ecx + 1], 0x5d
jne 0x45a050
cmp dword [ebp - 0x68], 0
je 0x45a2a0
push 0x487f0c
call sym.ruby187g.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp ebx, 0x5b
jne 0x45a07a
cmp byte [ecx], 0x3a
je 0x45a20e
push 0x487ee4
call sym.ruby187g.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp ebx, 0x5c
jne 0x45a1f9
cmp ecx, dword [ebp - 0x20]
je 0x45b13a
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
movzx eax, byte [eax]
cmp eax, 0x57
ja 0x45a0f1
je 0x45a399
cmp eax, 0x30
jb 0x45a11c
cmp eax, 0x39
jbe 0x45a0d0
cmp eax, 0x43
je 0x45a1cf
cmp eax, 0x44
je 0x45a33a
cmp eax, 0x4d
je 0x45a1cf
cmp eax, 0x53
je 0x45a2db
jmp 0x45a11c
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x50]
dec edi
push eax
push 3
push edi
call sym.ruby187g.exc_ruby_scan_oct
add esp, 0xc
add edi, dword [ebp - 0x50]
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edi
jmp 0x45a1c3
mov ecx, eax
sub ecx, 0x63
je 0x45a1cf
dec ecx
je 0x45a4be
sub ecx, 0xf
je 0x45a45f
sub ecx, 4
je 0x45a3f4
dec ecx
je 0x45a1a1
push eax
call fcn.0045b6b0
mov dword [ebp + 0x10], eax
pop ecx
mov ecx, dword [sym.ruby187g.exc_re_mbctab]
movzx eax, al
mov al, byte [eax + ecx]
test al, al
je 0x45a293
mov ecx, dword [ebp - 0x18]
movzx eax, al
add ecx, eax
cmp ecx, dword [ebp - 0x20]
jae 0x45b13a
cmp dword [0x498e44], 3
jne 0x45a185
push 6
pop ecx
push 1
sub ecx, eax
pop edx
shl edx, cl
mov ecx, eax
dec edx
and dword [ebp + 0x10], edx
dec eax
test ecx, ecx
je 0x45a199
inc eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 0x10]
shl edx, 6
mov cl, byte [ecx]
and ecx, 0x3f
or ecx, edx
inc dword [ebp - 0x18]
dec eax
mov dword [ebp + 0x10], ecx
jne 0x45a16a
jmp 0x45a199
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp + 0x10]
shl eax, 8
movzx ecx, byte [ecx]
or eax, ecx
inc dword [ebp - 0x18]
mov dword [ebp + 0x10], eax
inc dword [ebp - 0x38]
jmp 0x45a293
lea eax, [ebp - 0x50]
push eax
push 2
push dword [ebp - 0x18]
call sym.ruby187g.exc_ruby_scan_hex
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x50]
add esp, 0xc
test eax, eax
je 0x45b075
add dword [ebp - 0x18], eax
mov dword [ebp - 0x48], 1
jmp 0x45a293
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x20]
dec eax
push eax
call fcn.0045b6fc
add esp, 0xc
cmp eax, 0xff
mov dword [ebp + 0x10], eax
ja 0x45b075
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
jmp 0x45a1c3
cmp ebx, 0x5b
jne 0x45a293
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x3a
jne 0x45a293
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x45b13a
mov edx, dword [ebp - 0x18]
xor eax, eax
inc edx
mov dword [ebp - 0x44], eax
cmp edx, dword [ebp - 0x20]
je 0x45b094
movzx ecx, byte [edx]
inc edx
cmp ecx, 0x3a
mov dword [ebp - 0x18], edx
je 0x45a251
cmp ecx, 0x5d
je 0x45a251
cmp edx, dword [ebp - 0x20]
je 0x45a251
cmp eax, 6
je 0x45a251
mov byte [ebp + eax - 0x40], cl
inc eax
mov dword [ebp - 0x44], eax
jmp 0x45a22c
and byte [ebp + eax - 0x40], 0
cmp ecx, 0x3a
jne 0x45a264
cmp byte [edx], 0x5d
je 0x45a4f0
inc eax
inc eax
mov ecx, eax
dec eax
test ecx, ecx
mov dword [ebp - 0x44], eax
je 0x45a281
lea ecx, [eax + 1]
sub edx, ecx
mov dword [ebp - 0x18], edx
dec ecx
dec eax
test ecx, ecx
ja 0x45a278
mov dword [ebp - 0x44], eax
push 0x487ee4
call sym.ruby187g.exc_rb_warn
pop ecx
mov dword [ebp + 0x10], 0x5b
cmp dword [ebp - 0x68], 0
jne 0x45a98b
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x2d
jne 0x45aa21
cmp byte [ecx + 1], 0x5d
lea eax, [ecx + 1]
je 0x45aa21
cmp ecx, dword [ebp - 0x20]
mov dword [ebp + 0xc], ebx
je 0x45b13a
mov dword [ebp - 0x44], 0x2d
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x68], 1
jmp 0x459f4d
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a2f8
push 8
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x45a308
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax]
mov al, byte [eax + ecx*2]
and eax, 8
test eax, eax
jne 0x45a329
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x100
jb 0x45a2df
jmp 0x45a43b
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a357
push 4
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x45a367
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax]
mov al, byte [eax + ecx*2]
and eax, 4
test eax, eax
jne 0x45a388
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x100
jb 0x45a33e
jmp 0x45a43b
xor eax, eax
mov dword [ebp + 0x10], eax
mov cl, byte [eax + 0x498c74]
cmp cl, 1
je 0x45a3e4
cmp dword [0x498e44], 0
je 0x45a3c0
mov ecx, dword [sym.ruby187g.exc_re_mbctab]
cmp byte [ecx + eax], 0
je 0x45a3c5
jmp 0x45a3e4
cmp cl, 2
je 0x45a3e4
mov edx, dword [ebp - 4]
push 8
movzx eax, al
mov ecx, eax
shr ecx, 3
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
mov eax, dword [ebp + 0x10]
inc eax
cmp eax, 0x100
mov dword [ebp + 0x10], eax
jb 0x45a39e
jmp 0x45a97f
and dword [ebp + 0x10], 0
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x498c74]
cmp al, 1
je 0x45a412
cmp dword [0x498e44], 0
jne 0x45a42f
cmp al, 2
jne 0x45a42f
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x100
jb 0x45a3f8
cmp dword [0x498e44], 0
je 0x45a97f
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x80
call fcn.0045b3d9
add esp, 0xc
jmp 0x45a97f
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a47c
push 8
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x45a48c
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax]
mov al, byte [eax + ecx*2]
and eax, 8
test eax, eax
je 0x45a4ad
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x100
jb 0x45a463
jmp 0x45a97f
mov dword [ebp + 0x10], 0x30
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x39
jbe 0x45a4c5
jmp 0x45a97f
lea eax, [ebp - 0x40]
push str.alnum
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
mov edi, str.alpha
inc al
push edi
mov byte [ebp + 0x13], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.blank
inc al
mov byte [ebp + 0xf], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.cntrl
inc al
mov byte [ebp - 0x29], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.digit
inc al
mov byte [ebp - 0x5d], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.graph
inc al
mov byte [ebp - 0x58], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.lower
inc al
mov byte [ebp - 0x56], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.print
inc al
mov byte [ebp - 0x59], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 0x40
neg eax
sbb al, al
push str.punct
inc al
mov byte [ebp - 0x55], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.space
inc al
mov byte [ebp - 0x5b], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
inc al
mov byte [ebp - 0x57], al
mov ebx, str.upper
lea eax, [ebp - 0x40]
push ebx
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push str.xdigit
inc al
mov byte [ebp - 0x5a], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
neg eax
sbb al, al
push edi
inc al
mov byte [ebp - 0x5c], al
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 0x28
test eax, eax
je 0x45a70a
lea eax, [ebp - 0x40]
push ebx
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.lower
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.digit
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.alnum
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.xdigit
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.space
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.print
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.punct
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.graph
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.cntrl
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x45a70a
lea eax, [ebp - 0x40]
push str.blank
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x45b0b3
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x45b13a
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x45b0c1
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
xor ebx, ebx
cmp byte [ebp + 0x13], 0
je 0x45a761
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a749
push 0x107
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a759
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
and eax, 0x107
test eax, eax
jne 0x45a950
cmp byte [ebp + 0xf], 0
je 0x45a795
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a77d
push 0x103
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a78d
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
and eax, 0x103
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x29], 0
je 0x45a7ad
cmp ebx, 0x20
je 0x45a950
cmp ebx, 9
je 0x45a950
cmp byte [ebp - 0x5d], 0
je 0x45a7db
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a7c6
push 0x20
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a7d3
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 0x20
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x58], 0
je 0x45a809
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a7f4
push 4
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a801
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 4
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x56], 0
je 0x45a83d
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a825
push 0x117
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a835
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
and eax, 0x117
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x59], 0
je 0x45a86b
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a856
push 2
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a863
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 2
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x55], 0
je 0x45a89f
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a887
push 0x157
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a897
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
and eax, 0x157
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x5b], 0
je 0x45a8cd
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a8b8
push 0x10
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a8c5
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 0x10
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x57], 0
je 0x45a8f7
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a8e6
push 8
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a8f3
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 8
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x5a], 0
je 0x45a921
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a910
push 1
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a91d
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 1
test eax, eax
jne 0x45a950
cmp byte [ebp - 0x5c], 0
je 0x45a972
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45a93d
push 0x80
push ebx
call edi
pop ecx
pop ecx
jmp 0x45a94c
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 0x80
test eax, eax
je 0x45a972
mov edx, dword [ebp - 4]
push 8
movzx eax, bl
mov ecx, eax
shr ecx, 3
lea edi, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [edi], al
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
inc ebx
cmp ebx, 0x100
jl 0x45a72d
mov dword [ebp - 0x34], 1
jmp 0x459ebb
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], eax
ja 0x45b0e0
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
mov dword [ebp - 0x68], ecx
jne 0x45aa0e
cmp dword [ebp - 0x24], ecx
je 0x45a9e4
cmp dword [0x498e40], ecx
je 0x45a9e4
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x498e40]
mov edx, dword [ebp - 4]
push 8
movzx eax, byte [eax + ecx]
mov ecx, eax
shr ecx, 3
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x10]
jbe 0x45a9ae
jmp 0x45aa86
movzx eax, byte [ebp + 0xc]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x10]
jbe 0x45a9e4
jmp 0x45aa86
cmp dword [ebp - 0x38], 2
jne 0x45b0e0
push dword [ebp - 4]
push eax
push dword [ebp + 0xc]
jmp 0x45aa7e
xor ecx, ecx
cmp dword [ebp - 0x24], ecx
je 0x45aa40
mov eax, dword [0x498e40]
cmp eax, ecx
je 0x45aa40
cmp ebx, 0x100
jae 0x45aa40
movzx eax, byte [eax + ebx]
mov dword [ebp + 0x10], eax
cmp dword [ebp - 0x38], ecx
jne 0x45aa75
cmp dword [0x498e44], ecx
je 0x45aa52
cmp dword [ebp - 0x48], ecx
jne 0x45aa75
movzx eax, byte [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, eax
shr ecx, 3
push 8
lea ebx, [ecx + edx]
pop ecx
cdq
idiv ecx
mov al, 1
mov ecx, edx
shl al, cl
or byte [ebx], al
and dword [ebp - 0x48], 0
jmp 0x45aa86
push dword [ebp - 4]
push dword [ebp + 0x10]
push dword [ebp + 0x10]
call fcn.0045b3d9
add esp, 0xc
and dword [ebp - 0x38], 0
jmp 0x459ebb
mov eax, dword [ebp - 4]
cmp byte [eax - 1], 0
jle 0x45aab0
mov ecx, eax
mov al, byte [ecx - 1]
movsx edx, al
cmp byte [edx + ecx - 1], 0
jne 0x45aab0
dec al
test al, al
mov byte [ecx - 1], al
jg 0x45aa9a
mov ebx, dword [ebp - 4]
mov cl, byte [ebx - 1]
cmp cl, 0x20
je 0x45aadd
xor edx, edx
lea eax, [ebx + 0x20]
mov dh, byte [ebx + 0x21]
mov dl, byte [eax]
lea edx, [edx*8 + 2]
push edx
push eax
movzx eax, cl
add eax, ebx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0xc
mov cl, byte [ebx - 1]
xor edx, edx
movzx eax, cl
mov dh, byte [eax + ebx + 1]
add eax, ebx
mov dl, byte [eax]
movsx eax, cl
add eax, ebx
and dword [ebp - 0x48], 0
lea eax, [eax + edx*8 + 2]
mov dword [ebp - 4], eax
jmp 0x45aef1
cmp dword [ebp - 8], 0
je 0x45b0ff
cmp dword [ebp + 0x10], 0x2b
setne byte [ebp - 0x29]
cmp dword [ebp + 0x10], 0x3f
mov byte [ebp + 0x13], 1
setne byte [ebp + 0xf]
cmp edi, dword [ebp - 0x20]
je 0x45ab55
movzx eax, byte [edi]
inc edi
test ebx, ebx
mov dword [ebp - 0x18], edi
je 0x45ab38
test ecx, ecx
je 0x45ab38
movzx eax, byte [ecx + eax]
cmp eax, 0x2a
jb 0x45ab51
cmp eax, 0x2b
jbe 0x45b159
cmp eax, 0x3f
jne 0x45ab51
and byte [ebp + 0x13], 0
jmp 0x45ab55
dec edi
mov dword [ebp - 0x18], edi
cmp byte [ebp + 0x13], 0
je 0x45ac19
cmp byte [ebp + 0xf], 0
je 0x45acc1
mov edi, dword [ebp - 8]
cmp byte [edi], 0x15
jne 0x45ac1c
mov eax, dword [ebp - 4]
sub eax, edi
cmp eax, 2
jg 0x45ac1c
mov eax, dword [ebp - 4]
dec eax
cmp byte [eax], 0x1c
jne 0x45ab8f
mov dword [ebp - 4], eax
cmp byte [ebp - 0x29], 0
je 0x45ab9d
mov byte [edi], 0x16
jmp 0x45aef1
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45ac0e
jmp 0x45abb1
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x45abc7
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45abee
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45abf6
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45ac01
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45abac
mov eax, dword [ebp - 4]
mov byte [eax], 0x16
jmp 0x459430
mov edi, dword [ebp - 8]
cmp byte [ebp + 0xf], 0
je 0x45acc1
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x45ac9c
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45ac50
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45ac77
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45ac7f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45ac8a
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45ac35
mov edi, dword [ebp - 8]
mov al, byte [ebp + 0x13]
add edi, 0xfffffffd
neg al
sbb eax, eax
push edi
and al, 0xfa
add eax, 0x12
push eax
push dword [ebp - 4]
call fcn.0045b807
add esp, 0xc
add dword [ebp - 4], 3
mov edx, 0x10000
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x45ad36
jmp 0x45acd7
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x45aced
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45ad14
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45ad1c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45ad27
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45acd2
mov eax, dword [ebp - 4]
push eax
lea ebx, [eax + 3]
push ebx
push dword [ebp - 8]
push 0xa
call fcn.0045b82b
add esp, 0x10
cmp byte [ebp - 0x29], 0
mov edi, ebx
mov dword [ebp - 4], edi
je 0x45adee
cmp byte [ebp + 0x13], 0
jne 0x45aef1
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x45add4
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45ad8d
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45adb3
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45adbb
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45adc6
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45ad72
lea ebx, [edi + 3]
push edi
push ebx
push dword [ebp - 8]
push 0x11
call fcn.0045b82b
add esp, 0x10
mov dword [ebp - 4], ebx
jmp 0x45aef1
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x45ae5e
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x45b178
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45ae17
mov dword [esi + 4], eax
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
pop ecx
mov dword [esi], eax
test eax, eax
pop ecx
je 0x45b197
mov ecx, eax
xor edx, edx
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45ae3d
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45ae45
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45ae50
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45adfc
mov eax, dword [ebp - 8]
push edi
lea ecx, [eax + 6]
push ecx
push eax
push 0xd
call fcn.0045b82b
add esp, 0x10
add edi, 3
jmp 0x45aeee
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
mov dword [ebp - 8], edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45aeea
jmp 0x45ae8f
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x45b178
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x45aea5
mov dword [esi + 4], edx
push dword [esi + 4]
push ebx
call dword [sym.imp.MSVCRT.dll_realloc]
xor edx, edx
pop ecx
cmp eax, edx
pop ecx
mov dword [esi], eax
je 0x45b197
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45aecb
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45aed3
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45aede
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45ae8a
mov byte [edi], 0x15
inc edi
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x45b1b6
jmp 0x457051
lea ecx, [ebp - 0x114]
cmp eax, ecx
je 0x45af14
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.unmatched__
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45af33
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.undefined___...__sequence
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45af52
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.undefined___...__inline_option
jmp 0x45b328
sub edi, dword [ebp + 8]
push edi
push str.invalid_regular_expression__theres_no_previous_pattern__to_which__would_define_cardinality_at__d
mov esi, 0x498d74
push 0xc8
push esi
call sym.ruby187g.exc_rb_w32_snprintf
add esp, 0x10
jmp 0x45b11e
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45af92
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression___cant_be_last_character
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45afb1
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.cant_do_n_m_with_n___m
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45afd0
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.too_big_quantifier_in__
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45afef
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, 0x487d34
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b00e
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression____cant_be_the_last_character_ie._cant_start_range_at_the_end_of_pattern
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b02d
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__cant_use_character_class_as_an_end_value_of_range
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b04c
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__empty_character_class
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b06b
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__cant_use_character_class_as_a_start_value_of_range
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b08a
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.Invalid_escape_character_syntax
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b0a9
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__re_cant_end___:
jmp 0x45b328
lea eax, [ebp - 0x40]
push eax
push str.invalid_regular_expression___:_s:__is_not_a_character_class
jmp 0x45af65
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b0d6
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__range_doesnt_have_ending___after_a_character_class
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b0f5
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression
jmp 0x45b328
sub edi, dword [ebp + 8]
mov esi, 0x498d74
push edi
push dword [ebp + 0x10]
push str.invalid_regular_expression__theres_no_previous_pattern__to_which__c_would_define_cardinality_at__d
push 0xc8
push esi
call sym.ruby187g.exc_rb_w32_snprintf
add esp, 0x14
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b133
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, esi
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b14f
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.premature_end_of_regular_expression
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b16e
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.nested___in_regexp
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b18d
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.regular_expression_too_big
jmp 0x45b328
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x45b1ac
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.memory_exhausted
jmp 0x45b328
cmp dword [ebp - 0xc], 0
je 0x45b1cc
push dword [ebp - 4]
push 8
push dword [ebp - 0xc]
call fcn.0045b807
add esp, 0xc
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], eax
je 0x45b1f0
lea ecx, [ebp - 0x114]
cmp eax, ecx
je 0x45b1e6
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, 0x487a50
jmp 0x45b328
mov edx, dword [esi]
mov edi, dword [ebp - 4]
mov eax, edx
cmp eax, edi
je 0x45b213
mov cl, byte [eax]
cmp cl, 0xd
je 0x45b207
cmp cl, 0x11
jne 0x45b20a
add eax, 3
cmp byte [eax], 0x16
jne 0x45b213
or dword [esi + 0x18], 0x40
mov eax, edi
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 0x1c], eax
mov eax, edx
cmp eax, edi
je 0x45b23b
cmp byte [eax], 0x19
jne 0x45b22e
add eax, 3
cmp byte [eax], 1
jne 0x45b23b
or byte [esi + 0x18], 0x80
inc eax
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0
jne 0x45b24d
push edi
push edx
call fcn.0045b59e
pop ecx
mov dword [esi + 0x10], eax
pop ecx
cmp dword [0x498e44], 2
jne 0x45b25c
or byte [esi + 0x19], 1
jmp 0x45b2d6
mov eax, dword [esi + 0x10]
test eax, eax
je 0x45b2d6
movzx edi, byte [eax]
push 1
pop edx
cmp edi, edx
jle 0x45b298
mov cl, byte [edx + eax]
cmp cl, 0xff
je 0x45b294
cmp dword [0x498e44], 0
je 0x45b28d
mov ebx, dword [sym.ruby187g.exc_re_mbctab]
movzx ecx, cl
cmp byte [ecx + ebx], 0
jne 0x45b294
inc edx
cmp edx, edi
jl 0x45b26d
jmp 0x45b298
or byte [esi + 0x19], 1
test byte [esi + 0x19], 1
jne 0x45b2d6
push 0x400
call dword [sym.imp.MSVCRT.dll_malloc]
test byte [esi + 0x18], 0x21
pop ecx
mov dword [esi + 0x14], eax
je 0x45b2c1
mov ecx, dword [0x498e40]
test ecx, ecx
je 0x45b2c1
mov edx, ecx
jmp 0x45b2c3
xor edx, edx
mov ecx, dword [esi + 0x10]
push edx
movzx edx, byte [ecx]
inc ecx
push edx
push ecx
push eax
call fcn.0045b8e2
add esp, 0x10
mov eax, dword [ebp - 0x54]
mov edi, dword [sym.imp.MSVCRT.dll_malloc]
mov ebx, eax
shl ebx, 2
push ebx
call edi
push ebx
mov dword [esi + 0x24], eax
call edi
push ebx
mov dword [esi + 0x28], eax
call edi
push ebx
mov dword [esi + 0x2c], eax
call edi
push ebx
mov dword [esi + 0x30], eax
call edi
push ebx
mov dword [esi + 0x34], eax
call edi
push ebx
mov dword [esi + 0x38], eax
call edi
mov dword [esi + 0x3c], eax
lea eax, [ebp - 0x114]
add esp, 0x1c
cmp dword [ebp - 0x1c], eax
je 0x45b326
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret