Function at 0x4455b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
xor edx, edx
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
movzx eax, byte [eax + 4]
mov ebx, eax
and ebx, 0xfffffffb
cmp bl, 0x39
setne dl
xor ecx, ecx
cmp al, 0x3d
sete cl
lea edx, [edx + ecx*2 + 2]
cmp dword [esi + 0xc], edx
je 0x4458c8
mov dword [esp + 4], eax
lea eax, [esp + 0x34]
mov edi, dword [esp + 0x74]
mov ecx, 1
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], 0
lea edx, [edi + 0xc]
mov dword [esp + 8], 0
call sym.cpp_interpret_string_1_cpp_reader__cpp_string_const__unsigned_int__cpp_string__cpp_ttype__cpp_string_location_reader__cpp_substring_ranges_
test al, al
je 0x4458e4
mov eax, dword [esp + 0x74]
movzx ecx, byte [eax + 4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
cmp bl, 0x39
je 0x4457d0
movzx eax, byte [eax + 0x2fe]
mov edx, dword [esp + 0x70]
mov byte [esp + 0x10], al
lea eax, [esp + 0x3c]
call sym.converter_for_type_cpp_reader__cpp_ttype_
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x28], 0xffffffff
mov ebx, dword [edi + 0x2f0]
mov dword [esp + 0x24], eax
mov edi, eax
cmp eax, 0x1f
ja 0x4456a2
mov eax, 1
mov ecx, edi
shl eax, cl
sub eax, 1
mov dword [esp + 0x28], eax
mov edi, 0xffffffff
cmp ebx, 0x1f
ja 0x4456b8
mov edi, 1
mov ecx, ebx
shl edi, cl
sub edi, 1
mov eax, dword [esp + 0x24]
xor edx, edx
div ebx
cmp eax, dword [esp + 0x14]
jae 0x445908
mov edx, dword [esp + 0x14]
lea esi, [eax + eax]
mov ecx, ebx
mov dword [esp + 0x2c], esi
sub edx, esi
cmp dword [esp + 0x24], ebx
jb 0x445a96
lea ebp, [eax + edx]
add edx, dword [esp + 0x1c]
add ebp, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x1c], edx
xor esi, esi
jmp 0x445718
mov edx, dword [esp + 0x1c]
shl ebx, cl
sub ebp, 1
movzx edx, byte [edx + esi]
add esi, 1
and edx, edi
or ebx, edx
cmp eax, esi
jbe 0x445733
cmp byte [esp + 0x10], 0
jne 0x445700
movzx edx, byte [ebp - 1]
shl ebx, cl
add esi, 1
sub ebp, 1
and edx, edi
or ebx, edx
cmp eax, esi
ja 0x445718
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
sub esi, 0x3b
cmp dword [esp + 0x2c], edi
jae 0x445777
mov edi, dword [esp + 0x70]
xor eax, eax
cmp byte [edi + 0x290], 0
jne 0x4459d0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], str.character_constant_too_long_for_its_type
mov dword [esp], eax
call sym.cpp_error_cpp_reader__cpp_diagnostic_level__char_const__..._
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x44579c
cmp esi, 1
jbe 0x445798
mov edi, dword [esp + 0x70]
movzx edx, byte [edi + 0x2fd]
test dl, dl
je 0x445a38
and ebx, dword [esp + 0x28]
mov eax, 1
cmp esi, 1
jbe 0x4457b4
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x2fd]
movzx eax, dl
mov edi, dword [esp + 0x7c]
mov dword [edi], eax
mov eax, dword [esp + 0x78]
mov dword [eax], 1
jmp 0x445920
mov ecx, dword [eax + 0x2f0]
mov eax, dword [eax + 0x2f4]
mov edi, 0xffffffff
mov dword [esp + 0x10], eax
cmp ecx, 0x1f
ja 0x4457f4
mov edi, 1
shl edi, cl
sub edi, 1
mov esi, dword [esp + 0x14]
sub esi, 1
je 0x4459e0
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov edx, eax
lea ebp, [eax + esi]
lea esi, [esi]
movzx eax, byte [edx]
shl ebx, cl
and eax, edi
or ebx, eax
cmp ecx, 0x20
cmovae ebx, eax
add edx, 1
cmp ebp, edx
jne 0x445810
cmp dword [esp + 0x20], 0x3d
je 0x445940
mov eax, dword [esp + 0x10]
xor edx, edx
div ecx
mov edi, eax
cmp eax, esi
jae 0x4459b0
mov eax, dword [esp + 0x70]
mov dword [esp + 8], str.character_constant_too_long_for_its_type
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x10], ecx
call sym.cpp_error_cpp_reader__cpp_diagnostic_level__char_const__..._
cmp edi, 1
mov ecx, dword [esp + 0x10]
jbe 0x445a9d
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x2f4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x10]
xor eax, eax
cmp esi, 0x1f
ja 0x4458b5
mov edx, 1
mov ecx, esi
shl edx, cl
mov dword [esp + 0x14], edx
lea ebp, [edx - 1]
mov eax, dword [esp + 0x10]
sub eax, 1
bt ebx, eax
jb 0x4459f0
xor eax, eax
and ebx, ebp
mov esi, dword [esp + 0x78]
mov dword [esi], edi
mov edi, dword [esp + 0x7c]
mov dword [edi], eax
jmp 0x445920
mov eax, dword [esp + 0x70]
mov dword [esp + 8], str.empty_character_constant
mov dword [esp + 4], 3
mov dword [esp], eax
call sym.cpp_error_cpp_reader__cpp_diagnostic_level__char_const__..._
mov eax, dword [esp + 0x78]
xor ebx, ebx
mov dword [eax], 0
mov eax, dword [esp + 0x7c]
mov dword [eax], 0
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x78]
xor ebx, ebx
mov dword [eax], 0
mov eax, dword [esp + 0x7c]
mov dword [eax], 0
nop
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x10], eax
je 0x4458fa
mov dword [esp], eax
call sym._free
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 1
je 0x4459e9
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
mov edi, 1
mov dword [esp + 8], str.character_constant_too_long_for_its_type
mov dword [esp + 4], 3
mov dword [esp], eax
call sym.cpp_error_cpp_reader__cpp_diagnostic_level__char_const__..._
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x290], 0
jne 0x445a53
mov eax, 1
cmp ecx, 0x1f
ja 0x4458b5
mov ebp, eax
shl ebp, cl
sub ebp, 1
and ebx, ebp
jmp 0x4458b5
cmp esi, 1
je 0x445a51
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x2a1], 0
jne 0x445a00
mov edi, esi
jmp 0x445886
cmp esi, 2
sbb eax, eax
and eax, 3
jmp 0x445757
xor ebx, ebx
cmp dword [esp + 0x20], 0x3d
jne 0x445a51
mov edi, esi
jmp 0x44597a
mov edx, dword [esp + 0x14]
xor eax, eax
neg edx
or ebx, edx
jmp 0x4458b5
mov dword [esp + 8], str.multi_character_character_constant
mov edi, esi
mov dword [esp + 4], 5
mov dword [esp], eax
call sym.cpp_warning_cpp_reader__cpp_warning_reason__char_const__..._
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x2f4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
jmp 0x445886
sub eax, 1
bt ebx, eax
jae 0x445798
mov eax, dword [esp + 0x28]
not eax
or ebx, eax
jmp 0x4457b1
mov edi, esi
mov eax, dword [esp + 0x70]
movzx esi, byte [eax + 0x2fc]
cmp ecx, 0x1f
jbe 0x445a70
mov eax, esi
movzx eax, al
jmp 0x4458b5
mov edx, 1
mov eax, 1
shl edx, cl
mov dword [esp + 0x14], edx
lea ebp, [edx - 1]
mov edx, esi
test dl, dl
jne 0x4458b3
mov dword [esp + 0x10], ecx
jmp 0x4458a1
xor ebx, ebx
jmp 0x445733
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
jmp 0x445a53