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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
push esi
push edi
mov esi, ecx
call fcn.00474b30
lea ebx, [esi + 0xc]
mov edx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edx
inc dword [esi + 0x14]
inc dword [esi + 0x18]
cmp byte [esi + 0x10], 0
je 0x473f77
mov ecx, dword [ebx]
mov byte [esi + 0x10], 0
jmp 0x473f91
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x473f86
movzx ecx, byte [eax]
inc eax
mov dword [esi], eax
jmp 0x473f89
or ecx, 0xffffffff
mov ebx, edx
mov dword [edx], ecx
mov dword [esp + 0x18], ebx
cmp ecx, 0xffffffff
je 0x473fb7
mov eax, dword [esi + 0x24]
mov byte [esp + 0x17], cl
cmp eax, dword [esi + 0x28]
je 0x473fa9
mov byte [eax], cl
inc dword [esi + 0x24]
jmp 0x473fb7
lea ecx, [esp + 0x17]
push ecx
push eax
lea ecx, [esi + 0x20]
call fcn.00402d00
mov eax, dword [ebx]
cmp eax, 0xa
jne 0x473fcb
inc dword [esi + 0x1c]
inc eax
mov dword [esi + 0x18], 0
jmp 0x473fd7
inc eax
cmp eax, 0xf5
ja case.0x473fde.128
movzx eax, byte [eax + 0x4748f4]
jmp dword [eax*4 + 0x474844]
mov ecx, esi
call fcn.00474ac0
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x473fff.35
movzx eax, byte [eax + 0x474a14]
jmp dword [eax*4 + 0x4749ec]
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x47402f
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x474020
mov ecx, dword [ecx]
mov word [ecx + edx], 0x22
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0x22
mov byte [esp + 0x3c], 0
push dword [esp + 0x3c]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x474073
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x474064
mov ecx, dword [ecx]
mov word [ecx + edx], 0x5c
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0x5c
mov byte [esp + 0x40], 0
push dword [esp + 0x40]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x4740b7
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x4740a8
mov ecx, dword [ecx]
mov word [ecx + edx], 0x2f
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0x2f
mov byte [esp + 0x44], 0
push dword [esp + 0x44]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x4740fb
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x4740ec
mov ecx, dword [ecx]
mov word [ecx + edx], 8
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 8
mov byte [esp + 0x48], 0
push dword [esp + 0x48]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x47413f
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x474130
mov ecx, dword [ecx]
mov word [ecx + edx], 0xc
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0xc
mov byte [esp + 0x4c], 0
push dword [esp + 0x4c]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x474183
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x474174
mov ecx, dword [ecx]
mov word [ecx + edx], 0xa
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0xa
mov byte [esp + 0x50], 0
push dword [esp + 0x50]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x4741c7
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x4741b8
mov ecx, dword [ecx]
mov word [ecx + edx], 0xd
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 0xd
mov byte [esp + 0x54], 0
push dword [esp + 0x54]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x47420b
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x4741fc
mov ecx, dword [ecx]
mov word [ecx + edx], 9
mov edx, dword [esp + 0x10]
jmp 0x473f63
push 9
mov byte [esp + 0x58], 0
push dword [esp + 0x58]
push 1
call fcn.00402bc0
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov ecx, esi
call fcn.00474ce0
mov edi, eax
cmp edi, 0xffffffff
je 0x474589
lea ecx, [edi - 0xd800]
cmp ecx, 0x3ff
ja 0x474295
mov ecx, esi
call fcn.00474ac0
cmp eax, 0x5c
jne 0x474563
mov ecx, esi
call fcn.00474ac0
cmp eax, 0x75
jne 0x474563
mov ecx, esi
call fcn.00474ce0
cmp eax, 0xffffffff
je 0x474589
lea ecx, [eax - 0xdc00]
cmp ecx, 0x3ff
ja 0x474563
add edi, 0xffff2809
shl edi, 0xa
add edi, eax
jmp 0x4742a9
cmp edi, 0xdc00
jl 0x4742a9
cmp edi, 0xdfff
jle 0x474576
mov ecx, esi
cmp edi, 0x80
jge 0x4742c2
push edi
call fcn.00474a70
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov ebx, edi
and ebx, 0x3f
or ebx, 0x80
mov dword [esp + 0x34], ebx
cmp edi, 0x7ff
jg 0x4742fd
or edi, 0x3000
shr edi, 6
push edi
call fcn.00474a70
push ebx
mov ecx, esi
call fcn.00474a70
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov ebx, edi
and ebx, 0xfc0
or ebx, 0x2000
shr ebx, 6
cmp edi, 0xffff
jg 0x474345
or edi, 0xe0000
shr edi, 0xc
push edi
call fcn.00474a70
push ebx
mov ecx, esi
call fcn.00474a70
push dword [esp + 0x34]
mov ecx, esi
call fcn.00474a70
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov eax, edi
or eax, 0x3c00000
shr eax, 0x12
push eax
call fcn.00474a70
and edi, 0x3f000
mov ecx, esi
or edi, 0x80000
shr edi, 0xc
push edi
call fcn.00474a70
push ebx
mov ecx, esi
call fcn.00474a70
push dword [esp + 0x34]
mov ecx, esi
call fcn.00474a70
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov bl, byte [ebx]
lea ecx, [esi + 0x2c]
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
mov byte [esp + 0x58], bl
cmp edx, edi
jae 0x4743c1
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x4743ac
mov ecx, dword [ecx]
mov byte [ecx + edx], bl
mov ebx, dword [esp + 0x18]
mov byte [ecx + edx + 1], 0
mov edx, dword [esp + 0x10]
jmp 0x473f63
push dword [esp + 0x58]
mov byte [esp + 0x60], 0
push dword [esp + 0x60]
push 1
call fcn.00402bc0
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x473f63
lea eax, [esp + 0x68]
mov dword [esp + 0x60], 0x80
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], 0xbf
push eax
push ecx
mov ecx, esi
call fcn.00474bb0
test al, al
je 0x474835
mov edx, dword [esp + 0x10]
jmp 0x473f63
lea eax, [esp + 0x78]
mov dword [esp + 0x68], 0xa0
lea ecx, [esp + 0x68]
mov dword [esp + 0x6c], 0xbf
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x78], 0x80
mov dword [esp + 0x7c], 0xbf
call fcn.00474bb0
test al, al
je 0x474835
mov edx, dword [esp + 0x10]
jmp 0x473f63
lea eax, [esp + 0x88]
mov dword [esp + 0x78], 0x80
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], 0xbf
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x88], 0x80
mov dword [esp + 0x8c], 0xbf
call fcn.00474bb0
test al, al
je 0x474835
mov edx, dword [esp + 0x10]
jmp 0x473f63
lea eax, [esp + 0x98]
mov dword [esp + 0x88], 0x80
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], 0x9f
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x98], 0x80
mov dword [esp + 0x9c], 0xbf
call fcn.00474bb0
test al, al
je 0x474835
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov dword [esp + 0x1c], 0x90
mov dword [esp + 0x20], 0xbf
jmp 0x474521
mov dword [esp + 0x20], 0xbf
jmp 0x474519
mov dword [esp + 0x20], 0x8f
mov dword [esp + 0x1c], 0x80
lea eax, [esp + 0x34]
mov dword [esp + 0x24], 0x80
lea ecx, [esp + 0x1c]
mov dword [esp + 0x28], 0xbf
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x34], 0x80
mov dword [esp + 0x38], 0xbf
call fcn.00474bb0
test al, al
je 0x474835
mov edx, dword [esp + 0x10]
jmp 0x473f63
mov dword [esi + 0x44], str.invalid_string:_surrogate_UD800..UDBFF_must_be_followed_by_UDC00..UDFFF
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_surrogate_UDC00..UDFFF_must_follow_UD800..UDBFF
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_u_must_be_followed_by_4_hex_digits
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_forbidden_character_after_backslash
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_missing_closing_quote
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0000__NUL__must_be_escaped_to_u0000
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0001__SOH__must_be_escaped_to_u0001
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0002__STX__must_be_escaped_to_u0002
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0003__ETX__must_be_escaped_to_u0003
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0004__EOT__must_be_escaped_to_u0004
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0005__ENQ__must_be_escaped_to_u0005
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0006__ACK__must_be_escaped_to_u0006
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0007__BEL__must_be_escaped_to_u0007
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0008__BS__must_be_escaped_to_u0008_or__b
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0009__HT__must_be_escaped_to_u0009_or__t
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000A__LF__must_be_escaped_to_u000A_or__n
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000B__VT__must_be_escaped_to_u000B
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000C__FF__must_be_escaped_to_u000C_or__f
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000D__CR__must_be_escaped_to_u000D_or__r
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000E__SO__must_be_escaped_to_u000E
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U000F__SI__must_be_escaped_to_u000F
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0010__DLE__must_be_escaped_to_u0010
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0011__DC1__must_be_escaped_to_u0011
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0012__DC2__must_be_escaped_to_u0012
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0013__DC3__must_be_escaped_to_u0013
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0014__DC4__must_be_escaped_to_u0014
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0015__NAK__must_be_escaped_to_u0015
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0016__SYN__must_be_escaped_to_u0016
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0017__ETB__must_be_escaped_to_u0017
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0018__CAN__must_be_escaped_to_u0018
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U0019__EM__must_be_escaped_to_u0019
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001A__SUB__must_be_escaped_to_u001A
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001B__ESC__must_be_escaped_to_u001B
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001C__FS__must_be_escaped_to_u001C
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001D__GS__must_be_escaped_to_u001D
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001E__RS__must_be_escaped_to_u001E
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_control_character_U001F__US__must_be_escaped_to_u001F
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x44], str.invalid_string:_ill_formed_UTF_8_byte
pop edi
pop esi
mov eax, 0xe
pop ebx
mov esp, ebp
pop ebp
ret