Function at 0x44eba7
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.00452f21
cmp dword [esi + 4], ebx
push 0x1c
pop eax
jne 0x44ec3c
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 0x452da0
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
cmp edi, dword [ebp - 0x20]
je 0x452de4
mov edi, dword [ebp - 0x18]
mov edx, 0x10000
cmp edi, dword [ebp - 0x20]
je 0x452d2e
movzx eax, byte [edi]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [0x497a20]
inc edi
and ebx, 1
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], ebx
je 0x44ec7c
test ecx, ecx
je 0x44ec7c
movzx eax, byte [ecx + eax]
mov dword [ebp + 0x10], eax
cmp eax, 0x2b
ja 0x4501fc
cmp dword [ebp + 0x10], 0x2a
jae 0x4526f6
cmp dword [ebp + 0x10], 0x23
mov eax, dword [ebp + 0x10]
ja 0x44ed1d
cmp eax, 0x23
je 0x44ecd5
cmp eax, 9
jb 0x450235
cmp eax, 0xa
jbe 0x44ecc6
cmp eax, 0xb
jbe 0x450235
cmp eax, 0xd
jbe 0x44ecc6
cmp eax, 0x20
jne 0x450235
test byte [ebp - 0x28], 2
je 0x450235
jmp 0x452ae5
test byte [ebp - 0x28], 2
je 0x451439
cmp edi, dword [ebp - 0x20]
je 0x452daa
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
je 0x452d2e
movzx eax, byte [edx]
inc edx
test ebx, ebx
mov dword [ebp - 0x18], edx
je 0x44ed07
test ecx, ecx
je 0x44ed07
movzx eax, byte [ecx + eax]
cmp eax, 0xa
je 0x452ae5
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jne 0x44ece8
jmp 0x452ae5
sub eax, 0x24
je 0x4500d7
sub eax, 4
je 0x44f5a4
dec eax
jne 0x450235
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], eax
je 0x452af6
and dword [ebp - 0x10], 0
cmp dword [ebp - 0xc], 0
je 0x44edd8
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44edc1
jmp 0x44ed66
mov edx, 0x10000
mov edi, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x44ed7c
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44eda2
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44edaa
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44edb5
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44ed61
mov byte [ebx], 0xe
inc ebx
push ebx
push 8
push dword [ebp - 0xc]
mov dword [ebp - 4], ebx
call fcn.004533fb
add esp, 0xc
jmp 0x44eddb
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 0x44ef6a
xor eax, dword [ebp - 0x28]
test al, 1
je 0x44ee75
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44ee62
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44ee1d
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44ee43
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44ee4b
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44ee56
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44ee02
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 0x44ef6a
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44eeef
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44eeaa
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44eed0
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44eed8
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44eee3
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44ee8f
mov byte [ebx], 0x1f
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44ef5f
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44ef1a
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44ef40
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44ef48
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44ef53
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44eeff
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 0x44f32b
sub eax, 7
je 0x44f1ad
sub eax, 0x12
je 0x44f12e
sub eax, 3
je 0x44f3c7
dec eax
jne 0x44f559
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f017
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44efd2
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44eff8
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f000
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f00b
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44efb7
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 0x44f0b5
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f06d
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f093
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f09b
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f0a6
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f052
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 0x44f54d
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f0e4
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f10a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f112
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f11d
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f0c9
jmp 0x44f54a
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f1a1
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f158
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 0x452d8b
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x44f180
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x44f189
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x44f195
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f13a
mov byte [ebx], 0x1c
inc ebx
mov dword [ebp - 4], ebx
jmp 0x44f559
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 0x44f22f
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f1ea
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f210
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f218
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f223
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f1cf
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 0x44f2a6
mov eax, dword [esi]
cmp ecx, edi
mov dword [ebp - 0x24], eax
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44f25d
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 0x452d8b
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x44f285
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x44f28e
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x44f29a
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f244
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 0x44f31c
mov eax, dword [esi]
cmp ecx, edi
mov dword [ebp - 0x24], eax
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44f2d3
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 0x452d8b
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x44f2fb
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x44f304
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x44f310
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f2ba
mov edi, dword [ebp + 0xc]
mov al, byte [ebp - 0x54]
sub al, byte [edi]
mov byte [ebx], al
jmp 0x44f1a4
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f397
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f352
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f378
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f380
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f38b
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f337
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 0x44f433
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f3ee
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f414
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f41c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f427
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f3d3
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 0x44f4d5
mov edi, dword [esi]
cmp ecx, 0x10000
je 0x452d6c
add ecx, ecx
mov eax, 0x10000
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f48d
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f4b3
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f4bb
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f4c6
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f46e
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 0x44f54d
mov edi, dword [esi]
cmp ecx, 0x10000
je 0x452d6c
lea eax, [ecx + ecx]
mov ecx, 0x10000
cmp eax, ecx
mov dword [esi + 4], eax
jle 0x44f505
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x44f52b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f533
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f53e
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f4e5
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 0x44f578
lea ecx, [ecx + eax - 1]
mov dword [ebp - 0xc], ecx
jmp 0x44f57c
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 0x44f59c
cmp dword [ebp + 0x10], 0x3d
jne 0x452ae5
mov ebx, dword [ebp - 4]
mov dword [ebp - 8], ebx
jmp 0x452ae5
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 0x452d2e
movzx eax, byte [edi]
inc edi
test ebx, ebx
je 0x44f5cb
test ecx, ecx
je 0x44f5cb
movzx eax, byte [ecx + eax]
cmp eax, 0x3f
jne 0x44f6f1
xor ebx, ebx
cmp edi, dword [ebp - 0x20]
je 0x452d2e
movzx edx, byte [edi]
inc edi
cmp edx, 0x3e
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x18], edi
ja 0x44f641
cmp edx, 0x3d
jae 0x44f6fb
mov eax, edx
sub eax, 0x21
je 0x44f6fb
dec eax
dec eax
je 0x44f619
sub eax, 0xa
je 0x44f654
sub eax, 0xd
jne 0x452b12
jmp 0x44f6fb
cmp edi, dword [ebp - 0x20]
je 0x452d2e
movzx eax, byte [edi]
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], edi
je 0x44f637
test ecx, ecx
je 0x44f637
movzx eax, byte [ecx + eax]
cmp eax, 0x29
jne 0x44f619
jmp 0x452ae5
cmp edx, 0x69
je 0x44f654
cmp edx, 0x6d
je 0x44f654
cmp edx, 0x78
jne 0x452b12
push 1
pop eax
cmp edx, 0x29
je 0x44f6ed
cmp edx, 0x2d
je 0x44f6ce
cmp edx, 0x3a
je 0x44f6fb
cmp edx, 0x69
je 0x44f6b0
cmp edx, 0x6d
je 0x44f691
cmp edx, 0x78
jne 0x452b31
test ebx, ebx
je 0x44f68b
and dword [ebp - 0x28], 0xfffffffd
jmp 0x44f6d5
or dword [ebp - 0x28], 2
jmp 0x44f6d5
test ebx, ebx
je 0x44f6a1
test byte [ebp - 0x28], 4
je 0x44f6ab
and dword [ebp - 0x28], 0xfffffffb
jmp 0x44f6ab
test byte [ebp - 0x28], 4
jne 0x44f6ab
or dword [ebp - 0x28], 4
mov dword [ebp - 0x34], eax
jmp 0x44f6d5
test ebx, ebx
je 0x44f6c0
test byte [ebp - 0x28], 1
je 0x44f6c9
and dword [ebp - 0x28], 0xfffffffe
jmp 0x44f6c9
test byte [ebp - 0x28], 1
jne 0x44f6c9
or dword [ebp - 0x28], eax
mov dword [ebp - 0x64], eax
jmp 0x44f6d5
cmp edx, 0x3a
mov ebx, eax
je 0x44f6fb
cmp edi, dword [ebp - 0x20]
je 0x452d2e
movzx edx, byte [edi]
inc edi
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x18], edi
jmp 0x44f657
push 0x23
jmp 0x44f6f7
dec edi
push 0x28
mov dword [ebp - 0x18], edi
pop edx
mov dword [ebp + 0x10], edx
cmp edx, 0x23
jne 0x44f8f4
cmp dword [ebp - 0x34], 0
je 0x44f7f6
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f77d
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f738
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x44f75e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f766
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f771
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f71d
mov byte [edi], 0x1f
mov ecx, dword [esi + 4]
inc edi
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f7ed
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f7a8
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x44f7ce
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f7d6
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f7e1
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f78d
mov al, byte [ebp - 0x28]
mov byte [edi], al
inc edi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x64], 0
je 0x452ae5
test byte [ebp - 0x28], 1
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 4]
je 0x44f880
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f875
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x44f82e
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44f855
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f85d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f868
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f818
mov eax, dword [ebp - 4]
mov byte [eax], 0x1d
jmp 0x451024
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44f8e9
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x44f8a2
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44f8c9
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44f8d1
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44f8dc
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f88c
mov eax, dword [ebp - 4]
mov byte [eax], 0x1e
jmp 0x451024
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x70]
lea ecx, [edi + 0x20]
cmp ecx, eax
jb 0x44f979
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 0x44f944
shl edi, 3
push edi
call dword [sym.imp.MSVCRT.dll_malloc]
mov ebx, eax
pop ecx
test ebx, ebx
je 0x452d8b
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 0x44f95d
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 0x452d8b
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 0x44f991
sub eax, dword [esi]
inc eax
jmp 0x44f993
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 0x44fbe0
cmp edx, 0x28
je 0x44fa51
cmp edx, 0x3a
je 0x44f9d3
cmp edx, 0x3c
jbe 0x44fec8
cmp edx, 0x3e
jbe 0x44fbe0
jmp 0x44fec8
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x44fa3f
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44f9f8
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fa1f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fa27
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fa32
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44f9dd
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
and dword [ebp - 0x10], 0
mov byte [eax], 0x1b
jmp 0x44fec8
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x44fabd
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44fa76
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fa9d
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44faa5
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fab0
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fa5b
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 0x44fb35
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44faee
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fb15
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fb1d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fb28
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fad3
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 0x44fbc5
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44fb7e
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fba5
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fbad
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fbb8
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fb68
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp - 0x54], 0xff
jge 0x452d6c
jmp 0x44fec8
sub ebx, dword [esi]
mov ecx, dword [esi + 4]
inc ebx
cmp ebx, ecx
jl 0x44fc4c
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44fc05
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fc2c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fc34
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fc3f
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fbea
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 0x44fcd1
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44fc8a
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fcb1
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fcb9
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fcc4
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fc6f
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 0x44fd49
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44fd02
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fd29
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fd31
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fd3c
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fcec
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp + 0x10], 0x21
jne 0x44fec8
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
mov edi, 0x10000
inc eax
cmp eax, ecx
jl 0x44fdcb
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44fd84
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fdab
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fdb3
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fdbe
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fd6e
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 0x44fe4c
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44fe05
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fe2c
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fe34
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44fe3f
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fdef
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 0x44febf
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44fe78
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44fe9f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44fea7
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44feb2
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fe62
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
cmp dword [ebp - 0x34], 0
je 0x44ffbf
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x44ff41
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44fefc
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x44ff22
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44ff2a
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44ff35
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44fee1
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 0x44ffb4
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x44ff6d
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x44ff94
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x44ff9c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x44ffa7
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44ff57
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 0x4500b1
test byte [ebp - 0x28], 1
mov ecx, dword [esi + 4]
mov eax, edi
je 0x450043
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45003e
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x44fff9
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45001f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450027
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450032
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x44ffde
mov byte [edi], 0x1d
jmp 0x4500ad
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4500aa
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x450065
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45008b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450093
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45009e
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45004a
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 0x452ae5
test byte [esi + 0x18], 8
je 0x450156
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45014e
jmp 0x4500f3
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x450109
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x45012f
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450137
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450142
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4500ee
mov byte [edi], 5
jmp 0x452ae1
cmp edi, dword [ebp - 0x20]
mov eax, edi
mov dword [ebp - 0x4c], eax
je 0x450183
cmp byte [eax], 0x5c
jne 0x450183
lea ecx, [eax + 1]
cmp ecx, dword [ebp - 0x20]
je 0x450183
mov cl, byte [ecx]
cmp cl, 0x62
je 0x450179
cmp cl, 0x42
jne 0x450183
inc eax
inc eax
cmp eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
jne 0x450160
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4501f4
jmp 0x450199
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4501af
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4501d5
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4501dd
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4501e8
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450194
mov byte [edi], 3
jmp 0x452ae1
mov eax, dword [ebp + 0x10]
sub eax, 0x2e
je 0x452a6a
sub eax, 0x11
je 0x4526f6
sub eax, 0x1c
je 0x4518a9
dec eax
je 0x450bd8
dec eax
dec eax
je 0x450ae8
sub eax, 0x1d
je 0x450381
dec eax
je 0x45025c
cmp dword [ebp + 0x10], 0x5d
jne 0x450242
push str.regexp_has____without_escape
jmp 0x450251
cmp dword [ebp + 0x10], 0x7d
jne 0x451439
push str.regexp_has___without_escape
call sym.ruby187c.exc_rb_warn
pop ecx
jmp 0x451439
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x4502cf
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x450288
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4502ae
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4502b6
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4502c1
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45026d
lea eax, [ebx + 6]
push ebx
push eax
push dword [ebp - 0x14]
push 0xa
call fcn.0045341f
and dword [ebp - 0x10], 0
add esp, 0x10
add ebx, 3
cmp dword [ebp - 0xc], 0
je 0x4502fc
push ebx
push 9
push dword [ebp - 0xc]
call fcn.004533fb
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 0x45036f
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x450328
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45034e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450356
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450361
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x45030d
add ebx, 3
and dword [ebp - 8], 0
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
jmp 0x452ae5
cmp dword [ebp - 8], 0
je 0x452b50
cmp edi, dword [ebp - 0x20]
je 0x452b71
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 0x4503b7
test ecx, ecx
je 0x4503b7
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 0x4503d6
push 4
push ebx
call edi
pop ecx
pop ecx
mov ecx, dword [0x497a20]
jmp 0x4503e3
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 0x45041d
cmp dword [ebp + 0xc], 0
jge 0x4503f1
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 0x45041d
movzx ebx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
je 0x4503bd
test ecx, ecx
je 0x4503bd
movzx ebx, byte [ecx + ebx]
jmp 0x4503bd
cmp ebx, 0x2c
jne 0x45047e
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x450484
movzx ebx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
je 0x45043f
test ecx, ecx
je 0x45043f
movzx ebx, byte [ecx + ebx]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x450458
push 4
push ebx
call edi
pop ecx
pop ecx
mov ecx, dword [0x497a20]
jmp 0x450465
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 0x450484
mov eax, dword [ebp - 0x34]
test eax, eax
jge 0x450472
xor eax, eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2 - 0x30]
mov dword [ebp - 0x34], eax
jmp 0x450422
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0xc], 0
jl 0x450aa7
cmp ebx, 0x7d
jne 0x450aa7
mov edx, 0x7fff
cmp dword [ebp + 0xc], edx
jge 0x452baf
mov ebx, dword [ebp - 0x34]
cmp ebx, edx
jge 0x452baf
test ebx, ebx
jge 0x4504b9
mov ebx, edx
mov dword [ebp - 0x34], ebx
cmp dword [ebp + 0xc], ebx
jg 0x452b90
mov edi, dword [ebp - 0x18]
and dword [ebp - 0x10], 0
cmp edi, dword [ebp - 0x20]
mov byte [ebp + 0x13], 1
je 0x4504f6
movzx eax, byte [edi]
inc edi
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], edi
je 0x4504e7
test ecx, ecx
je 0x4504e7
movzx eax, byte [ecx + eax]
cmp eax, 0x3f
jne 0x4504f2
and byte [ebp + 0x13], 0
jmp 0x4504f6
dec edi
mov dword [ebp - 0x18], edi
cmp dword [ebp + 0xc], 0
jne 0x450515
cmp ebx, edx
mov byte [ebp - 0x29], 1
jne 0x45050a
mov byte [ebp + 0xf], 1
jmp 0x450534
cmp ebx, 1
jne 0x45053e
and byte [ebp + 0xf], 0
jmp 0x450534
cmp dword [ebp + 0xc], 1
jne 0x45053e
cmp ebx, 1
je 0x452ae5
cmp ebx, 0x7fff
jne 0x45053e
and byte [ebp - 0x29], 0
mov byte [ebp + 0xf], 1
mov edx, 0x10000
jmp 0x452749
mov eax, dword [ebp - 0x34]
mov edi, 0x10000
test eax, eax
jne 0x4505ce
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x4505bc
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x450573
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45059a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4505a2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4505ad
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 0x45055d
mov eax, dword [ebp - 4]
push eax
lea ebx, [eax + 3]
push ebx
push dword [ebp - 8]
push 8
jmp 0x4529d2
cmp dword [ebp + 0xc], eax
jne 0x450898
mov eax, dword [ebp - 4]
and dword [ebp - 0x24], 0
dec eax
cmp byte [eax], 0x1c
jne 0x4505ee
mov dword [ebp - 0x24], 1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
cmp byte [eax], 1
jne 0x450756
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 0x450756
mov eax, dword [ebp + 0xc]
mov ecx, eax
imul ecx, edx
cmp ecx, 0x100
jge 0x450756
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 0x4506a2
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x450657
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45067e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450686
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450691
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 0x45063c
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 0x4506d2
lea edi, [ecx + 2]
jmp 0x4506bc
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 0x4506b9
cmp dword [ebp - 0x24], 0
je 0x452ae5
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45074b
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x450704
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45072b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450733
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45073e
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4506ee
mov eax, dword [ebp - 4]
mov byte [eax], 0x1c
jmp 0x451024
mov eax, dword [ebp + 0xc]
cmp eax, 5
jge 0x45088f
mov ebx, dword [ebp - 4]
sub ebx, dword [ebp - 8]
cmp ebx, 0xa
mov dword [ebp - 0x6c], ebx
jge 0x45088f
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 0x4507ec
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4507a4
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4507cb
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4507d3
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4507de
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 0x450789
cmp dword [ebp + 0x10], 0
je 0x45080d
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 0x4507f5
cmp dword [ebp - 0x24], 0
je 0x452ae5
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45074b
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x450843
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45086a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450872
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45087d
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45082d
jmp 0x45074b
cmp dword [ebp - 0x24], 0
je 0x450898
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 0x450945
cmp byte [ebp + 0x13], 0
jne 0x450945
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x45092d
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4508e4
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45090b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450913
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45091e
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 0x4508c9
mov eax, dword [ebp - 4]
push eax
lea edi, [eax + 3]
push edi
push dword [ebp - 8]
push 0x11
call fcn.0045341f
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 0x4509b6
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45096e
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450995
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45099d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4509a8
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 0x450953
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.00453477
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.004534a1
add dword [ebp - 4], edi
add esp, 0x28
cmp dword [ebp - 0x34], 1
jle 0x452ae5
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, edi
cmp eax, ecx
jl 0x450a65
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x450a1e
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x450a44
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450a4c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450a57
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 5
cmp edx, ecx
jge 0x450a03
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.00453446
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.004534a1
add esp, 0x24
add ebx, 5
jmp 0x4529da
push str.regexp_has_invalid_interval
call sym.ruby187c.exc_rb_warn
mov eax, dword [ebp + 0x10]
pop ecx
cmp eax, dword [ebp - 0x20]
je 0x452d2e
movzx ecx, byte [eax]
inc eax
cmp dword [ebp - 0x24], 0
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x18], eax
je 0x451436
mov eax, dword [0x497a20]
test eax, eax
je 0x451436
movzx eax, byte [eax + ecx]
jmp 0x451433
mov edi, dword [ebp - 4]
mov ecx, dword [esi + 4]
test byte [esi + 0x18], 8
mov eax, edi
je 0x450b67
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x450b5f
jmp 0x450b04
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x450b1a
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x450b40
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450b48
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450b53
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450aff
mov byte [edi], 4
jmp 0x452ae1
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x450bd0
jmp 0x450b75
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x450b8b
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x450bb1
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450bb9
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450bc4
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450b70
mov byte [edi], 2
jmp 0x452ae1
cmp edi, dword [ebp - 0x20]
je 0x452bce
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 0x45102c
je 0x450fac
cmp edi, 0x43
ja 0x450f16
je 0x45105a
cmp edi, 0x30
je 0x450efb
jbe 0x45142c
cmp edi, 0x39
jbe 0x450d2a
cmp edi, 0x41
je 0x450cb0
cmp edi, 0x42
jne 0x45142c
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x450ca5
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x450c5e
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450c85
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450c8d
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450c98
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450c48
mov eax, dword [ebp - 4]
mov byte [eax], 0x2a
jmp 0x451024
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x450d1f
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x450cd8
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450cff
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450d07
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450d12
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450cc2
mov eax, dword [ebp - 4]
mov byte [eax], 4
jmp 0x451024
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 0x450da3
movzx edi, byte [ebx]
inc ebx
cmp dword [ebp - 0x24], eax
mov dword [ebp - 0x18], ebx
je 0x450d52
cmp ecx, eax
je 0x450d52
movzx edi, byte [ecx + edi]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x450d6f
push 4
push edi
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
mov ecx, dword [0x497a20]
jmp 0x450d7c
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 0x450da3
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 0x450da3
movzx edi, byte [ebx]
inc ebx
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], ebx
je 0x450d52
test ecx, ecx
jmp 0x450d4c
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x450dba
push 4
push edi
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x450dc7
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 0x450dcf
dec ebx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x44]
cmp eax, 9
jbe 0x450e09
cmp eax, dword [ebp - 0x54]
jb 0x450e09
lea eax, [ebp - 0x50]
push eax
push 3
push dword [ebp - 0x4c]
call sym.ruby187c.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 0x451505
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 0x450e7b
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x450e34
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450e5b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450e63
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450e6e
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450e1e
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 0x450eee
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x450ea7
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450ece
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450ed6
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450ee1
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450e91
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x44]
mov byte [ecx], al
jmp 0x451024
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x50]
push eax
push 2
push ebx
call sym.ruby187c.exc_ruby_scan_oct
add esp, 0xc
mov dword [ebp + 0x10], eax
jmp 0x4514ff
cmp edi, 0x44
je 0x451185
cmp edi, 0x47
je 0x450f35
cmp edi, 0x4d
je 0x45105a
cmp edi, 0x53
jmp 0x45104f
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x450fa4
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x450f5d
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450f84
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x450f8c
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x450f97
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450f47
mov eax, dword [ebp - 4]
mov byte [eax], 7
jmp 0x451024
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 0x45101e
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x450fd7
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x450ffe
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451006
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451011
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x450fc1
mov eax, dword [ebp - 4]
mov byte [eax], 0x26
inc dword [ebp - 4]
jmp 0x452ae5
cmp edi, 0x73
ja 0x451416
je 0x451185
mov eax, edi
sub eax, 0x5a
je 0x451101
sub eax, 8
je 0x451087
dec eax
je 0x45105a
dec eax
je 0x451185
jmp 0x45142c
lea eax, [ebp - 0x4c]
dec ebx
push eax
mov dword [ebp - 0x4c], ebx
push dword [ebp - 0x20]
push ebx
call fcn.004532f0
add esp, 0xc
cmp eax, 0xff
mov dword [ebp + 0x10], eax
ja 0x452c69
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
jmp 0x451505
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4510f6
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x4510af
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4510d6
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4510de
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4510e9
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451099
mov eax, dword [ebp - 4]
mov byte [eax], 0x29
jmp 0x451024
test byte [esi + 0x18], 8
jne 0x451465
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x45117a
mov ebx, 0x10000
mov edi, dword [esi]
cmp ecx, ebx
je 0x452d6c
add ecx, ecx
cmp ecx, ebx
mov dword [esi + 4], ecx
jle 0x451133
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45115a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451162
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45116d
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45111d
mov eax, dword [ebp - 4]
mov byte [eax], 6
jmp 0x451024
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
add eax, 0x29
cmp eax, ecx
jle 0x4511ff
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4511b4
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 0x452d8b
mov ecx, eax
sub ecx, dword [ebp - 0x24]
add ebx, ecx
cmp dword [ebp - 0xc], 0
je 0x4511dc
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 0
je 0x4511e5
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
je 0x4511f1
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
add edx, 0x29
cmp edx, ecx
jg 0x451196
cmp edi, 0x73
mov dword [ebp - 8], ebx
je 0x45127d
cmp edi, 0x64
je 0x45127d
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x451278
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451233
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 0x452d8b
mov ecx, eax
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x451259
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451261
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45126c
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451218
mov byte [ebx], 0x18
jmp 0x4512ec
mov ecx, dword [esi + 4]
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4512e9
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x4512a4
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x4512ca
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4512d2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4512dd
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451289
mov byte [ebx], 0x17
mov ecx, dword [esi + 4]
inc ebx
mov eax, ebx
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x451359
mov edi, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451314
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, edi
add ebx, ecx
cmp dword [ebp - 0xc], edx
je 0x45133a
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451342
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45134d
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, ebx
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4512f9
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 0x4513a7
cmp dword [ebp + 0x10], 0x53
je 0x4513a7
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 0x451384
jmp 0x4513af
or byte [ebx + 4], 1
or byte [ebx + 1], 0x36
cmp byte [ebx - 1], 0
jle 0x4513cb
mov al, byte [ebx - 1]
movsx ecx, al
cmp byte [ecx + ebx - 1], 0
jne 0x4513cb
dec al
test al, al
mov byte [ebx - 1], al
jg 0x4513b5
mov cl, byte [ebx - 1]
cmp cl, 0x20
je 0x4513f5
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 0x452ae5
mov eax, edi
sub eax, 0x77
je 0x45182c
dec eax
je 0x4514df
dec eax
dec eax
je 0x451465
push edi
call fcn.004532a4
pop ecx
mov dword [ebp + 0x10], eax
mov edi, dword [ebp - 0x18]
movzx eax, byte [ebp + 0x10]
mov ecx, dword [sym.ruby187c.exc_re_mbctab]
and dword [ebp - 0x38], 0
cmp byte [eax + ecx], 0
je 0x45150f
mov eax, edi
mov dword [ebp - 0x38], 1
sub eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
jmp 0x45150f
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4514d4
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x45148d
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4514b4
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4514bc
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4514c7
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451477
mov eax, dword [ebp - 4]
mov byte [eax], 5
jmp 0x451024
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x50]
push eax
push 2
push ebx
call sym.ruby187c.exc_ruby_scan_hex
add esp, 0xc
cmp dword [ebp - 0x50], 0
mov dword [ebp + 0x10], eax
je 0x452c69
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.ruby187c.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 0x45156a
movsx ecx, byte [edx]
mov edi, dword [ebp - 4]
lea edx, [ecx + edx + 1]
cmp edx, edi
jne 0x45156d
mov edx, dword [ebp - 0x44]
neg edx
sbb edx, edx
add edx, 0x7f
cmp ecx, edx
jge 0x45156d
cmp eax, dword [ebp - 0x20]
jae 0x45165e
mov al, byte [eax]
cmp al, 0x2b
je 0x45156d
cmp al, 0x3f
je 0x45156d
cmp al, 0x2a
je 0x45156d
cmp al, 0x5e
je 0x45156d
cmp al, 0x7b
jne 0x45165e
jmp 0x45156d
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 0x4515dc
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451597
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4515bd
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4515c5
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4515d0
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45157c
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 0x451652
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x45160b
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x451632
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45163a
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451645
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4515f5
mov eax, dword [ebp - 4]
and byte [eax], 0
inc dword [ebp - 4]
mov edi, dword [ebp - 4]
cmp dword [ebp - 0x48], 0
jne 0x45166d
cmp dword [ebp + 0x10], 0xff
jne 0x4516e6
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4516d9
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451694
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4516ba
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4516c2
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4516cd
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451679
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 0x451752
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x45170d
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x451733
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x45173b
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451746
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4516f2
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 0x452ae5
mov eax, dword [sym.ruby187c.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 0x452ae5
mov edi, 0x10000
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x452d2e
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 0x451809
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x4517c2
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4517e9
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4517f1
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4517fc
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4517ac
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 0x451789
jmp 0x452ae5
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 0x45189e
mov edi, 0x10000
mov ebx, dword [esi]
cmp ecx, edi
je 0x452d6c
add ecx, ecx
cmp ecx, edi
mov dword [esi + 4], ecx
jle 0x451857
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45187e
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451886
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451891
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451841
mov eax, dword [ebp - 4]
mov byte [eax], 0x25
jmp 0x451024
cmp edi, dword [ebp - 0x20]
je 0x452bed
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 0x29
cmp eax, ecx
jle 0x451925
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4518d7
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4518fe
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451906
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451911
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 0x4518c1
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 0x4519ad
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x4519a1
jmp 0x451944
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x45195a
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x451981
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451989
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451994
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x45193f
mov edi, dword [ebp - 4]
mov byte [edi], 0x18
inc edi
inc dword [ebp - 0x18]
jmp 0x451a1f
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x451a18
jmp 0x4519bb
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4519d1
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4519f8
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451a00
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451a0b
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4519b6
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 0x451a91
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451a4c
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x451a72
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451a7a
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451a85
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x451a31
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 0x451acc
cmp dword [0x497a24], ecx
je 0x451b41
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 0x451b41
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x451b00
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x451b27
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x451b2f
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x451b3a
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
add eax, ecx
jmp 0x451ada
cmp dword [ebp - 0x68], 0
je 0x451b51
cmp dword [ebp - 0x34], 0
jne 0x452c0c
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x452d2e
mov ecx, eax
movzx ebx, byte [ecx]
inc ecx
cmp ebx, 0x5d
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x18], ecx
jne 0x451b91
mov eax, dword [ebp - 0x4c]
inc eax
cmp ecx, eax
jne 0x452683
cmp ecx, dword [ebp - 0x20]
je 0x452c2b
push str.character_class_has____without_escape
call sym.ruby187c.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], 0
je 0x451ba5
cmp ebx, 0x2d
jne 0x451ba5
cmp byte [ecx], 0x5d
jne 0x452c4a
mov edx, dword [sym.ruby187c.exc_re_mbctab]
movzx eax, bl
mov al, byte [eax + edx]
test al, al
je 0x451c19
movzx eax, al
add ecx, eax
cmp ecx, dword [ebp - 0x20]
jae 0x452d2e
cmp dword [0x497a24], 3
jne 0x451bff
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 0x451c10
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 0x451be4
jmp 0x451c10
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 0x451c52
mov eax, dword [ebp - 0x4c]
inc eax
cmp ecx, eax
je 0x451c2f
cmp byte [ecx], 0x5d
jne 0x451c44
cmp byte [ecx], 0x2d
jne 0x451c3a
cmp byte [ecx + 1], 0x5d
jne 0x451c44
cmp dword [ebp - 0x68], 0
je 0x451e94
push 0x48708c
call sym.ruby187c.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp ebx, 0x5b
jne 0x451c6e
cmp byte [ecx], 0x3a
je 0x451e02
push 0x487064
call sym.ruby187c.exc_rb_warn
pop ecx
mov ecx, dword [ebp - 0x18]
cmp ebx, 0x5c
jne 0x451ded
cmp ecx, dword [ebp - 0x20]
je 0x452d2e
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
movzx eax, byte [eax]
cmp eax, 0x57
ja 0x451ce5
je 0x451f8d
cmp eax, 0x30
jb 0x451d10
cmp eax, 0x39
jbe 0x451cc4
cmp eax, 0x43
je 0x451dc3
cmp eax, 0x44
je 0x451f2e
cmp eax, 0x4d
je 0x451dc3
cmp eax, 0x53
je 0x451ecf
jmp 0x451d10
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x50]
dec edi
push eax
push 3
push edi
call sym.ruby187c.exc_ruby_scan_oct
add esp, 0xc
add edi, dword [ebp - 0x50]
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x18], edi
jmp 0x451db7
mov ecx, eax
sub ecx, 0x63
je 0x451dc3
dec ecx
je 0x4520b2
sub ecx, 0xf
je 0x452053
sub ecx, 4
je 0x451fe8
dec ecx
je 0x451d95
push eax
call fcn.004532a4
mov dword [ebp + 0x10], eax
pop ecx
mov ecx, dword [sym.ruby187c.exc_re_mbctab]
movzx eax, al
mov al, byte [eax + ecx]
test al, al
je 0x451e87
mov ecx, dword [ebp - 0x18]
movzx eax, al
add ecx, eax
cmp ecx, dword [ebp - 0x20]
jae 0x452d2e
cmp dword [0x497a24], 3
jne 0x451d79
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 0x451d8d
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 0x451d5e
jmp 0x451d8d
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 0x451e87
lea eax, [ebp - 0x50]
push eax
push 2
push dword [ebp - 0x18]
call sym.ruby187c.exc_ruby_scan_hex
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x50]
add esp, 0xc
test eax, eax
je 0x452c69
add dword [ebp - 0x18], eax
mov dword [ebp - 0x48], 1
jmp 0x451e87
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x20]
dec eax
push eax
call fcn.004532f0
add esp, 0xc
cmp eax, 0xff
mov dword [ebp + 0x10], eax
ja 0x452c69
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
jmp 0x451db7
cmp ebx, 0x5b
jne 0x451e87
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x3a
jne 0x451e87
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x452d2e
mov edx, dword [ebp - 0x18]
xor eax, eax
inc edx
mov dword [ebp - 0x44], eax
cmp edx, dword [ebp - 0x20]
je 0x452c88
movzx ecx, byte [edx]
inc edx
cmp ecx, 0x3a
mov dword [ebp - 0x18], edx
je 0x451e45
cmp ecx, 0x5d
je 0x451e45
cmp edx, dword [ebp - 0x20]
je 0x451e45
cmp eax, 6
je 0x451e45
mov byte [ebp + eax - 0x40], cl
inc eax
mov dword [ebp - 0x44], eax
jmp 0x451e20
and byte [ebp + eax - 0x40], 0
cmp ecx, 0x3a
jne 0x451e58
cmp byte [edx], 0x5d
je 0x4520e4
inc eax
inc eax
mov ecx, eax
dec eax
test ecx, ecx
mov dword [ebp - 0x44], eax
je 0x451e75
lea ecx, [eax + 1]
sub edx, ecx
mov dword [ebp - 0x18], edx
dec ecx
dec eax
test ecx, ecx
ja 0x451e6c
mov dword [ebp - 0x44], eax
push 0x487064
call sym.ruby187c.exc_rb_warn
pop ecx
mov dword [ebp + 0x10], 0x5b
cmp dword [ebp - 0x68], 0
jne 0x45257f
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x2d
jne 0x452615
cmp byte [ecx + 1], 0x5d
lea eax, [ecx + 1]
je 0x452615
cmp ecx, dword [ebp - 0x20]
mov dword [ebp + 0xc], ebx
je 0x452d2e
mov dword [ebp - 0x44], 0x2d
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x68], 1
jmp 0x451b41
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x451eec
push 8
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x451efc
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 0x451f1d
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 0x451ed3
jmp 0x45202f
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x451f4b
push 4
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x451f5b
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 0x451f7c
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 0x451f32
jmp 0x45202f
xor eax, eax
mov dword [ebp + 0x10], eax
mov cl, byte [eax + 0x497854]
cmp cl, 1
je 0x451fd8
cmp dword [0x497a24], 0
je 0x451fb4
mov ecx, dword [sym.ruby187c.exc_re_mbctab]
cmp byte [ecx + eax], 0
je 0x451fb9
jmp 0x451fd8
cmp cl, 2
je 0x451fd8
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 0x451f92
jmp 0x452573
and dword [ebp + 0x10], 0
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x497854]
cmp al, 1
je 0x452006
cmp dword [0x497a24], 0
jne 0x452023
cmp al, 2
jne 0x452023
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 0x451fec
cmp dword [0x497a24], 0
je 0x452573
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x80
call fcn.00452fcd
add esp, 0xc
jmp 0x452573
and dword [ebp + 0x10], 0
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x452070
push 8
push dword [ebp + 0x10]
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x452080
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 0x4520a1
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 0x452057
jmp 0x452573
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 0x4520b9
jmp 0x452573
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 0x4522fe
lea eax, [ebp - 0x40]
push ebx
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.lower
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.digit
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.alnum
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.xdigit
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.space
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.print
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.punct
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.graph
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.cntrl
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4522fe
lea eax, [ebp - 0x40]
push str.blank
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x452ca7
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x452d2e
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x452cb5
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
xor ebx, ebx
cmp byte [ebp + 0x13], 0
je 0x452355
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45233d
push 0x107
push ebx
call edi
pop ecx
pop ecx
jmp 0x45234d
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 0x452544
cmp byte [ebp + 0xf], 0
je 0x452389
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x452371
push 0x103
push ebx
call edi
pop ecx
pop ecx
jmp 0x452381
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 0x452544
cmp byte [ebp - 0x29], 0
je 0x4523a1
cmp ebx, 0x20
je 0x452544
cmp ebx, 9
je 0x452544
cmp byte [ebp - 0x5d], 0
je 0x4523cf
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4523ba
push 0x20
push ebx
call edi
pop ecx
pop ecx
jmp 0x4523c7
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 0x452544
cmp byte [ebp - 0x58], 0
je 0x4523fd
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4523e8
push 4
push ebx
call edi
pop ecx
pop ecx
jmp 0x4523f5
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 0x452544
cmp byte [ebp - 0x56], 0
je 0x452431
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x452419
push 0x117
push ebx
call edi
pop ecx
pop ecx
jmp 0x452429
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 0x452544
cmp byte [ebp - 0x59], 0
je 0x45245f
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45244a
push 2
push ebx
call edi
pop ecx
pop ecx
jmp 0x452457
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 0x452544
cmp byte [ebp - 0x55], 0
je 0x452493
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x45247b
push 0x157
push ebx
call edi
pop ecx
pop ecx
jmp 0x45248b
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 0x452544
cmp byte [ebp - 0x5b], 0
je 0x4524c1
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4524ac
push 0x10
push ebx
call edi
pop ecx
pop ecx
jmp 0x4524b9
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 0x452544
cmp byte [ebp - 0x57], 0
je 0x4524eb
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x4524da
push 8
push ebx
call edi
pop ecx
pop ecx
jmp 0x4524e7
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 0x452544
cmp byte [ebp - 0x5a], 0
je 0x452515
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x452504
push 1
push ebx
call edi
pop ecx
pop ecx
jmp 0x452511
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 0x452544
cmp byte [ebp - 0x5c], 0
je 0x452566
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x452531
push 0x80
push ebx
call edi
pop ecx
pop ecx
jmp 0x452540
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 0x452566
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 0x452321
mov dword [ebp - 0x34], 1
jmp 0x451aaf
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], eax
ja 0x452cd4
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
mov dword [ebp - 0x68], ecx
jne 0x452602
cmp dword [ebp - 0x24], ecx
je 0x4525d8
cmp dword [0x497a20], ecx
je 0x4525d8
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x497a20]
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 0x4525a2
jmp 0x45267a
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 0x4525d8
jmp 0x45267a
cmp dword [ebp - 0x38], 2
jne 0x452cd4
push dword [ebp - 4]
push eax
push dword [ebp + 0xc]
jmp 0x452672
xor ecx, ecx
cmp dword [ebp - 0x24], ecx
je 0x452634
mov eax, dword [0x497a20]
cmp eax, ecx
je 0x452634
cmp ebx, 0x100
jae 0x452634
movzx eax, byte [eax + ebx]
mov dword [ebp + 0x10], eax
cmp dword [ebp - 0x38], ecx
jne 0x452669
cmp dword [0x497a24], ecx
je 0x452646
cmp dword [ebp - 0x48], ecx
jne 0x452669
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 0x45267a
push dword [ebp - 4]
push dword [ebp + 0x10]
push dword [ebp + 0x10]
call fcn.00452fcd
add esp, 0xc
and dword [ebp - 0x38], 0
jmp 0x451aaf
mov eax, dword [ebp - 4]
cmp byte [eax - 1], 0
jle 0x4526a4
mov ecx, eax
mov al, byte [ecx - 1]
movsx edx, al
cmp byte [edx + ecx - 1], 0
jne 0x4526a4
dec al
test al, al
mov byte [ecx - 1], al
jg 0x45268e
mov ebx, dword [ebp - 4]
mov cl, byte [ebx - 1]
cmp cl, 0x20
je 0x4526d1
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 0x452ae5
cmp dword [ebp - 8], 0
je 0x452cf3
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 0x452749
movzx eax, byte [edi]
inc edi
test ebx, ebx
mov dword [ebp - 0x18], edi
je 0x45272c
test ecx, ecx
je 0x45272c
movzx eax, byte [ecx + eax]
cmp eax, 0x2a
jb 0x452745
cmp eax, 0x2b
jbe 0x452d4d
cmp eax, 0x3f
jne 0x452745
and byte [ebp + 0x13], 0
jmp 0x452749
dec edi
mov dword [ebp - 0x18], edi
cmp byte [ebp + 0x13], 0
je 0x45280d
cmp byte [ebp + 0xf], 0
je 0x4528b5
mov edi, dword [ebp - 8]
cmp byte [edi], 0x15
jne 0x452810
mov eax, dword [ebp - 4]
sub eax, edi
cmp eax, 2
jg 0x452810
mov eax, dword [ebp - 4]
dec eax
cmp byte [eax], 0x1c
jne 0x452783
mov dword [ebp - 4], eax
cmp byte [ebp - 0x29], 0
je 0x452791
mov byte [edi], 0x16
jmp 0x452ae5
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
inc eax
cmp eax, ecx
jl 0x452802
jmp 0x4527a5
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4527bb
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x4527e2
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4527ea
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4527f5
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub edx, eax
inc edx
cmp edx, ecx
jge 0x4527a0
mov eax, dword [ebp - 4]
mov byte [eax], 0x16
jmp 0x451024
mov edi, dword [ebp - 8]
cmp byte [ebp + 0xf], 0
je 0x4528b5
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 4]
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x452890
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x452844
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x45286b
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x452873
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45287e
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 0x452829
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.004533fb
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 0x45292a
jmp 0x4528cb
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x4528e1
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add dword [ebp - 4], ecx
cmp dword [ebp - 0xc], edx
je 0x452908
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x452910
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x45291b
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 0x4528c6
mov eax, dword [ebp - 4]
push eax
lea ebx, [eax + 3]
push ebx
push dword [ebp - 8]
push 0xa
call fcn.0045341f
add esp, 0x10
cmp byte [ebp - 0x29], 0
mov edi, ebx
mov dword [ebp - 4], edi
je 0x4529e2
cmp byte [ebp + 0x13], 0
jne 0x452ae5
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x4529c8
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x452981
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x4529a7
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x4529af
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x4529ba
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x452966
lea ebx, [edi + 3]
push edi
push ebx
push dword [ebp - 8]
push 0x11
call fcn.0045341f
add esp, 0x10
mov dword [ebp - 4], ebx
jmp 0x452ae5
mov ecx, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
add eax, 3
cmp eax, ecx
jl 0x452a52
mov ebx, dword [esi]
mov eax, 0x10000
cmp ecx, eax
je 0x452d6c
add ecx, ecx
cmp ecx, eax
mov dword [esi + 4], ecx
jle 0x452a0b
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 0x452d8b
mov ecx, eax
xor edx, edx
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x452a31
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x452a39
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x452a44
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
add edx, 3
cmp edx, ecx
jge 0x4529f0
mov eax, dword [ebp - 8]
push edi
lea ecx, [eax + 6]
push ecx
push eax
push 0xd
call fcn.0045341f
add esp, 0x10
add edi, 3
jmp 0x452ae2
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 0x452ade
jmp 0x452a83
mov edx, 0x10000
mov ebx, dword [esi]
cmp ecx, edx
je 0x452d6c
add ecx, ecx
cmp ecx, edx
mov dword [esi + 4], ecx
jle 0x452a99
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 0x452d8b
mov ecx, eax
sub ecx, ebx
add edi, ecx
cmp dword [ebp - 0xc], edx
je 0x452abf
add dword [ebp - 0xc], ecx
cmp dword [ebp - 8], edx
je 0x452ac7
add dword [ebp - 8], ecx
add dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], edx
je 0x452ad2
add dword [ebp - 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, eax
inc edx
cmp edx, ecx
jge 0x452a7e
mov byte [edi], 0x15
inc edi
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
je 0x452daa
jmp 0x44ec45
lea ecx, [ebp - 0x114]
cmp eax, ecx
je 0x452b08
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.unmatched__
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452b27
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.undefined___...__sequence
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452b46
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.undefined___...__inline_option
jmp 0x452f1c
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, 0x497954
push 0xc8
push esi
call sym.ruby187c.exc_rb_w32_snprintf
add esp, 0x10
jmp 0x452d12
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452b86
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression___cant_be_last_character
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452ba5
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.cant_do_n_m_with_n___m
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452bc4
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.too_big_quantifier_in__
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452be3
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, 0x486eb4
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c02
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 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c21
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 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c40
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__empty_character_class
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c5f
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 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c7e
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.Invalid_escape_character_syntax
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452c9d
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression__re_cant_end___:
jmp 0x452f1c
lea eax, [ebp - 0x40]
push eax
push str.invalid_regular_expression___:_s:__is_not_a_character_class
jmp 0x452b59
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452cca
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 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452ce9
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.invalid_regular_expression
jmp 0x452f1c
sub edi, dword [ebp + 8]
mov esi, 0x497954
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.ruby187c.exc_rb_w32_snprintf
add esp, 0x14
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452d27
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, esi
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452d43
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.premature_end_of_regular_expression
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452d62
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.nested___in_regexp
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452d81
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.regular_expression_too_big
jmp 0x452f1c
lea eax, [ebp - 0x114]
cmp dword [ebp - 0x1c], eax
je 0x452da0
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, str.memory_exhausted
jmp 0x452f1c
cmp dword [ebp - 0xc], 0
je 0x452dc0
push dword [ebp - 4]
push 8
push dword [ebp - 0xc]
call fcn.004533fb
add esp, 0xc
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], eax
je 0x452de4
lea ecx, [ebp - 0x114]
cmp eax, ecx
je 0x452dda
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov eax, 0x486bd0
jmp 0x452f1c
mov edx, dword [esi]
mov edi, dword [ebp - 4]
mov eax, edx
cmp eax, edi
je 0x452e07
mov cl, byte [eax]
cmp cl, 0xd
je 0x452dfb
cmp cl, 0x11
jne 0x452dfe
add eax, 3
cmp byte [eax], 0x16
jne 0x452e07
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 0x452e2f
cmp byte [eax], 0x19
jne 0x452e22
add eax, 3
cmp byte [eax], 1
jne 0x452e2f
or byte [esi + 0x18], 0x80
inc eax
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0
jne 0x452e41
push edi
push edx
call fcn.00453192
pop ecx
mov dword [esi + 0x10], eax
pop ecx
cmp dword [0x497a24], 2
jne 0x452e50
or byte [esi + 0x19], 1
jmp 0x452eca
mov eax, dword [esi + 0x10]
test eax, eax
je 0x452eca
movzx edi, byte [eax]
push 1
pop edx
cmp edi, edx
jle 0x452e8c
mov cl, byte [edx + eax]
cmp cl, 0xff
je 0x452e88
cmp dword [0x497a24], 0
je 0x452e81
mov ebx, dword [sym.ruby187c.exc_re_mbctab]
movzx ecx, cl
cmp byte [ecx + ebx], 0
jne 0x452e88
inc edx
cmp edx, edi
jl 0x452e61
jmp 0x452e8c
or byte [esi + 0x19], 1
test byte [esi + 0x19], 1
jne 0x452eca
push 0x400
call dword [sym.imp.MSVCRT.dll_malloc]
test byte [esi + 0x18], 0x21
pop ecx
mov dword [esi + 0x14], eax
je 0x452eb5
mov ecx, dword [0x497a20]
test ecx, ecx
je 0x452eb5
mov edx, ecx
jmp 0x452eb7
xor edx, edx
mov ecx, dword [esi + 0x10]
push edx
movzx edx, byte [ecx]
inc ecx
push edx
push ecx
push eax
call fcn.004534d6
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 0x452f1a
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret