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

Disassembly:
mov eax, 0x1080
call fcn.00488480
mov eax, dword [esp + 0x1090]
mov edx, dword [esp + 0x1094]
mov ecx, dword [esp + 0x108c]
push ebx
mov ebx, dword [esp + 0x1088]
push ebp
mov ebp, dword [esp + 0x1090]
push esi
xor esi, esi
push edi
xor edi, edi
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ebx
cmp eax, esi
jne 0x46f8d0
cmp ecx, esi
je 0x46f8c3
mov dword [ecx], 0x63
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret
mov dword [eax], esi
cmp ecx, esi
je 0x46f8d8
mov dword [ecx], esi
cmp edx, esi
jne 0x46f8e6
mov eax, 0x10
jmp 0x46fef6
mov dword [edx], esi
mov dword [esp + 0x28], 0x496928
mov dword [esp + 0x2c], 0x496a28
mov dword [esp + 0x30], 0x496b28
mov dword [esp + 0x34], 0x496c68
test ebp, 0xdc038580
je 0x46f91a
mov eax, 0x11
jmp 0x46fee7
cmp byte [ebx], 0x28
jne 0x46fa6f
jmp 0x46f932
xor esi, esi
cmp byte [ebx + edi + 1], 0x2a
jne 0x46fa6f
push 5
lea esi, [edi + ebx + 2]
push str.UTF8_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46f963
add edi, 7
or ebp, 0x800
jmp 0x46fa63
push 4
push str.UCP_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46f985
add edi, 6
or ebp, 0x20000000
jmp 0x46fa63
push 3
push 0x497af0
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46f9ac
add edi, 5
mov eax, 0x100000
and ebp, 0xff8fffff
jmp 0x46fa61
push 3
push 0x497af4
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46f9d3
add edi, 5
mov eax, 0x200000
and ebp, 0xff8fffff
jmp 0x46fa61
push 5
push str.CRLF_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46f9f7
add edi, 7
mov eax, 0x300000
and ebp, 0xff8fffff
jmp 0x46fa61
push 4
push str.ANY_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46fa1b
add edi, 6
mov eax, 0x400000
and ebp, 0xff8fffff
jmp 0x46fa61
push 8
push str.ANYCRLF_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46fa3f
add edi, 0xa
mov eax, 0x500000
and ebp, 0xff8fffff
jmp 0x46fa61
push 0xc
push str.BSR_ANYCRLF_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46fa81
add edi, 0xe
mov eax, 0x800000
and ebp, 0xfe7fffff
or ebp, eax
cmp byte [edi + ebx], 0x28
je 0x46f930
xor esi, esi
test ebp, 0x800
je 0x46fa9f
mov eax, 0x20
jmp 0x46fee7
push 0xc
push str.BSR_UNICODE_
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46fa6d
add edi, 0xe
mov eax, 0x1000000
jmp 0x46fa5b
test ebp, 0x20000000
je 0x46fab1
mov eax, 0x43
jmp 0x46fee7
mov eax, ebp
and eax, 0x1800000
je 0x46fad2
cmp eax, 0x800000
je 0x46fad2
cmp eax, 0x1000000
je 0x46fad2
mov eax, 0x38
jmp 0x46fee7
mov eax, ebp
and eax, 0x700000
mov ecx, 2
cmp eax, 0x300000
jg 0x46fb36
je 0x46fb2f
cmp eax, esi
je 0x46fb2f
cmp eax, 0x100000
je 0x46fb28
cmp eax, 0x200000
jne 0x46fb44
mov eax, 0xa
mov dword [esp + 0x80], esi
cmp eax, 0xff
jle 0x46fb64
mov dword [esp + 0x84], ecx
mov ecx, eax
sar ecx, 8
mov byte [esp + 0x88], cl
mov byte [esp + 0x89], al
jmp 0x46fb76
mov eax, 0xd
jmp 0x46fafe
mov eax, 0xd0a
jmp 0x46fafe
cmp eax, 0x400000
je 0x46fb57
cmp eax, 0x500000
je 0x46fb4e
mov eax, 0x38
jmp 0x46fee7
mov dword [esp + 0x80], ecx
jmp 0x46fb76
mov dword [esp + 0x80], 1
jmp 0x46fb76
mov dword [esp + 0x84], 1
mov byte [esp + 0x88], al
lea edx, [esp + 0x90]
mov eax, edx
mov dword [esp + 0x3c], eax
mov ecx, edx
mov eax, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46fbb2
sub eax, edx
add eax, ebx
lea edx, [esp + 0x90]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], eax
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
push eax
push eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x44]
push edx
mov eax, ebp
and eax, 7
push eax
lea esi, [edi + ebx]
push ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x4c], esi
mov byte [esp + 0xc4], 0x5e
call fcn.0046eeb0
mov eax, dword [esp + 0x44]
add esp, 0x34
test eax, eax
jne 0x46fee7
mov ebp, dword [esp + 0x14]
cmp ebp, 0x10000
jle 0x46fc4e
mov eax, 0x14
jmp 0x46fee7
mov ecx, dword [esp + 0x58]
add ecx, 3
imul ecx, dword [esp + 0x54]
lea ebx, [ecx + ebp + 0x28]
push ebx
call dword [0x49d2d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x46fc76
lea eax, [edi + 0x15]
jmp 0x46fee0
mov dword [edi + 4], ebx
mov dword [edi], 0x50435245
mov edx, dword [esp + 0x6c]
mov dword [edi + 8], edx
movzx eax, word [esp + 0x70]
mov word [edi + 0xc], ax
xor edx, edx
mov dword [edi + 0x14], edx
xor ecx, ecx
mov word [edi + 0xe], cx
mov ecx, 0x28
mov word [edi + 0x18], cx
movzx edx, word [esp + 0x58]
mov word [edi + 0x1a], dx
movzx eax, word [esp + 0x54]
xor ecx, ecx
mov word [edi + 0x1c], ax
mov word [edi + 0x1e], cx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
movzx eax, word [edi + 0x18]
push ecx
add eax, edi
mov dword [esp + 0x54], eax
movzx edx, word [edi + 0x1a]
movzx ebx, word [edi + 0x1c]
imul ebx, edx
lea edx, [esp + 0x2c]
push edx
push ecx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x34]
push edx
push ecx
push ecx
push ecx
add ebx, eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x68], ecx
lea eax, [esp + 0xb0]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x30]
push ecx
mov byte [ebx], 0x5e
mov eax, dword [edi + 8]
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x44]
mov edx, eax
push ecx
and edx, 7
push edx
push eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
call fcn.0046eeb0
movzx eax, word [esp + 0x90]
mov word [edi + 0x10], ax
mov cx, word [esp + 0x98]
mov word [edi + 0x12], cx
movzx edx, word [esp + 0xa4]
add esp, 0x34
mov word [edi + 0xc], dx
cmp dword [esp + 0x78], 0
je 0x46fd83
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x10], 0
jne 0x46fd9b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0
je 0x46fd9b
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
inc eax
sub eax, ebx
cmp eax, ebp
jle 0x46fdb3
mov dword [esp + 0x10], 0x17
jmp 0x46fe30
cmp dword [esp + 0x10], 0
jne 0x46fe30
lea ebx, [ebx]
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x90]
cmp eax, ecx
jbe 0x46fe1e
sub eax, 2
mov dword [esp + 0x4c], eax
movzx edx, byte [eax]
movzx ebp, byte [eax + 1]
shl edx, 8
or ebp, edx
movzx esi, byte [ebx + ebp]
movzx eax, byte [ebx + ebp + 1]
shl esi, 8
or esi, eax
mov eax, ebx
call fcn.0046aa60
test eax, eax
je 0x46fe14
mov ecx, eax
sub ecx, ebx
sar ecx, 8
sub al, bl
mov byte [ebx + ebp], cl
mov byte [ebx + ebp + 1], al
cmp dword [esp + 0x10], 0
je 0x46fdc0
jmp 0x46fe30
mov dword [esp + 0x10], 0x35
jmp 0x46fe30
mov dx, word [edi + 0x12]
cmp dx, word [edi + 0x10]
jbe 0x46fe30
mov dword [esp + 0x10], 0xf
cmp dword [esp + 0x7c], 0
je 0x46fecb
or esi, 0xffffffff
mov eax, ebx
call fcn.0046aa60
mov esi, eax
test esi, esi
je 0x46fecb
nop
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
jne 0x46fea7
movzx edx, byte [esi - 2]
movzx eax, byte [esi - 1]
shl edx, 8
or edx, eax
movzx ecx, byte [edx + esi - 3]
lea ebp, [edx + esi - 3]
lea edx, [esp + 0x28]
push edx
mov byte [ebp], 0
mov eax, dword [edi + 8]
push 1
push eax
push esi
mov dword [esp + 0x24], ecx
call fcn.0046a7b0
mov cl, byte [esp + 0x24]
add esp, 0x10
mov byte [ebp], cl
test eax, eax
js 0x46feba
mov edx, eax
sar edx, 8
mov byte [esi + 1], dl
mov byte [esi + 2], al
lea eax, [esi + 3]
or esi, 0xffffffff
call fcn.0046aa60
mov esi, eax
test esi, esi
jne 0x46fe50
jmp 0x46fecb
sub eax, 0xfffffffe
neg eax
sbb eax, eax
and eax, 0xfffffff5
add eax, 0x24
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x46ff3b
push edi
call dword [0x49d2d4]
mov eax, dword [esp + 0x14]
add esp, 4
mov ebx, dword [esp + 0x1094]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10a4]
sub ecx, ebx
mov dword [edx], ecx
mov esi, eax
mov ecx, str.no_error
test eax, eax
jle 0x46ff18
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x46ff01
cmp byte [ecx], dl
je 0x46ff13
dec esi
test esi, esi
jg 0x46ff01
jmp 0x46ff18
mov ecx, str.Error_text_not_found__please_report_
mov edx, dword [esp + 0x10a0]
mov dword [edx], ecx
mov ecx, dword [esp + 0x109c]
test ecx, ecx
je 0x46ff2e
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret
mov eax, dword [edi + 8]
test al, 0x10
jne 0x46ffc6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
push eax
push 0
lea ecx, [esp + 0x1c]
push ecx
push ebx
call fcn.0046f290
add esp, 0x10
test eax, eax
je 0x46ff69
or dword [edi + 8], 0x10
jmp 0x46ffc6
mov eax, dword [esp + 0x24]
test eax, eax
jns 0x46ff85
push 0
lea edx, [esp + 0x18]
push edx
push ebx
call fcn.0046f6a0
add esp, 0xc
test eax, eax
js 0x46ffad
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x46ffa2
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x46ffa2
mov eax, ecx
or word [edi + 0xc], 2
mov word [edi + 0x14], ax
jmp 0x46ffc6
mov eax, dword [esp + 0x68]
push eax
push 0
push ebx
call fcn.0046f430
add esp, 0xc
test eax, eax
je 0x46ffc6
or word [edi + 0xc], 8
mov eax, dword [esp + 0x20]
test eax, eax
js 0x470004
test byte [edi + 8], 0x10
je 0x46ffdb
test eax, 0x200
je 0x470004
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x46fffb
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x46fffb
and eax, 0xfffffeff
or word [edi + 0xc], 4
mov word [edi + 0x16], ax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret