Function at 0x7c0250
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x74
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
mov ebx, dword [esp + 0x7c]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], ebx
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x7c027a
push dword [edi]
mov eax, dword [ecx]
push ebx
call dword [eax + 0x10]
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0297
push 2
push 0x924fb8
call fcn.0041214d
jmp 0x7c02a4
mov ax, word [0x924fb8]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [ebx + 0xc]
shr eax, 0x1d
test al, 1
je 0x7c02f3
push ebx
push dword [edi]
call fcn.007b3ed0
mov ecx, dword [edi]
add esp, 8
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 3
jae 0x7c02d9
push 3
push 0x93f280
call fcn.0041214d
jmp 0x7c03a3
mov ax, word [0x93f280]
mov word [edx], ax
mov al, byte [0x93f282]
mov byte [edx + 2], al
add dword [ecx + 0xc], 3
jmp 0x7c03a3
mov eax, dword [ebx]
cmp byte [eax + 4], 7
je 0x7c03a3
mov ecx, dword [edi + 0x10]
push ebx
call fcn.00411a59
mov ecx, dword [edi]
mov esi, eax
cmp esi, 0xffffffff
jne 0x7c0350
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 0xb
jae 0x7c032c
push 0xb
push str._badref__
call fcn.0041214d
jmp 0x7c03a3
movq xmm0, qword [str._badref__]
movq qword [edx], xmm0
mov ax, word [0x9eef14]
mov word [edx + 8], ax
mov al, byte [0x9eef16]
mov byte [edx + 0xa], al
add dword [ecx + 0xc], 0xb
jmp 0x7c03a3
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
jb 0x7c0363
push 0x25
call fcn.0040c4b4
mov ecx, eax
jmp 0x7c0369
mov byte [eax], 0x25
inc dword [ecx + 0xc]
push esi
call fcn.0040517d
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 3
jae 0x7c038e
push 3
push 0x93f280
mov ecx, edx
call fcn.0041214d
jmp 0x7c03a3
mov ax, word [0x93f280]
mov word [esi], ax
mov al, byte [0x93f282]
mov byte [esi + 2], al
add dword [edx + 0xc], 3
xor ecx, ecx
mov eax, ebx
cmp byte [ebx + 8], 0x50
cmovne eax, ecx
test eax, eax
je 0x7c047c
movzx eax, word [eax + 0xa]
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x7c03fe
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 9
jae 0x7c03e4
push 9
push str.musttail
call fcn.0041214d
jmp 0x7c047c
movq xmm0, qword [str.musttail]
movq qword [edx], xmm0
mov al, byte [0x9eef24]
mov byte [edx + 8], al
add dword [ecx + 0xc], 9
jmp 0x7c047c
and eax, 3
cmp eax, 1
je 0x7c044c
cmp eax, 2
je 0x7c044c
cmp ecx, 3
jne 0x7c047c
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 7
jae 0x7c042d
push 7
push str.notail
call fcn.0041214d
jmp 0x7c047c
mov eax, dword [str.notail]
mov dword [edx], eax
mov ax, word [0x9eef34]
mov word [edx + 4], ax
mov al, byte [0x9eef36]
mov byte [edx + 6], al
add dword [ecx + 0xc], 7
jmp 0x7c047c
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 5
jae 0x7c0469
push 5
push str.tail
call fcn.0041214d
jmp 0x7c047c
mov eax, dword [str.tail]
mov dword [edx], eax
mov al, byte [0x9eef2c]
mov byte [edx + 4], al
add dword [ecx + 0xc], 5
movzx eax, byte [ebx + 8]
sub eax, 0x18
push eax
call fcn.0040bc7b
mov ecx, dword [edi]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test edx, edx
je 0x7c04ae
mov esi, edx
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x7c04a1
sub esi, dword [esp + 0xc]
jmp 0x7c04b0
xor esi, esi
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 0xc]
cmp esi, eax
jbe 0x7c04ca
push esi
push edx
call fcn.0041214d
jmp 0x7c04e3
test esi, esi
je 0x7c04e3
push esi
push edx
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x20]
add esp, 0xc
add dword [eax + 0xc], esi
mov al, byte [ebx + 8]
cmp al, 0x38
jne 0x7c04f8
mov ecx, ebx
call fcn.0040a362
test al, al
jne 0x7c0507
mov al, byte [ebx + 8]
cmp al, 0x39
jne 0x7c0541
mov ecx, ebx
call fcn.0040a362
test al, al
je 0x7c0541
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 7
jae 0x7c0524
push 7
push str._atomic
call fcn.0041214d
jmp 0x7c0541
mov eax, dword [str._atomic]
mov dword [edx], eax
mov ax, word [0x9eef40]
mov word [edx + 4], ax
mov al, byte [0x9eef42]
mov byte [edx + 6], al
add dword [ecx + 0xc], 7
cmp byte [ebx + 8], 0x3c
jne 0x7c0580
mov al, byte [ebx + 0xa]
shr al, 1
test al, 1
je 0x7c0580
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 5
jae 0x7c056d
push 5
push str._weak
call fcn.0041214d
jmp 0x7c0580
mov eax, dword [str._weak]
mov dword [edx], eax
mov al, byte [0x9eef4c]
mov byte [edx + 4], al
add dword [ecx + 0xc], 5
mov al, byte [ebx + 8]
cmp al, 0x38
jne 0x7c058f
test byte [ebx + 0xa], 1
jne 0x7c05b1
jmp 0x7c05e6
cmp al, 0x39
jne 0x7c059b
test byte [ebx + 0xa], 1
jne 0x7c05b1
jmp 0x7c05e6
cmp al, 0x3c
jne 0x7c05a7
test byte [ebx + 0xa], 1
jne 0x7c05b1
jmp 0x7c05e6
cmp al, 0x3d
jne 0x7c05e6
test byte [ebx + 0xa], 1
je 0x7c05e6
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 9
jae 0x7c05ce
push 9
push str._volatile
call fcn.0041214d
jmp 0x7c05e6
movq xmm0, qword [str._volatile]
movq qword [edx], xmm0
mov al, byte [0x93e5e4]
mov byte [edx + 8], al
add dword [ecx + 0xc], 9
push ebx
push dword [edi]
call fcn.007b64e0
mov al, byte [ebx + 8]
add esp, 8
cmp al, 0x4d
je 0x7c05fc
cmp al, 0x4e
jne 0x7c067b
test ebx, ebx
je 0x7c067b
mov ax, word [ebx + 0xa]
mov esi, dword [edi]
and ax, 0x3f
movzx eax, ax
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jb 0x7c0626
push 0x20
mov ecx, esi
call fcn.0040c4b4
mov esi, eax
jmp 0x7c062c
mov byte [eax], 0x20
inc dword [esi + 0xc]
mov eax, dword [esp + 0xc]
movzx eax, ax
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040e4d5
add esp, 8
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esi + 8]
sub eax, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], ecx
cmp ecx, eax
jbe 0x7c0663
push ecx
push edx
mov ecx, esi
call fcn.0041214d
jmp 0x7c067b
test ecx, ecx
je 0x7c067b
push ecx
push edx
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x18]
add esp, 0xc
add dword [esi + 0xc], eax
xor ecx, ecx
mov eax, ebx
cmp byte [ebx + 8], 0x3d
cmovne eax, ecx
test eax, eax
je 0x7c0709
mov ax, word [eax + 0xa]
mov esi, dword [edi]
shr ax, 4
and ax, 0xf
movzx eax, ax
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jb 0x7c06b4
push 0x20
mov ecx, esi
call fcn.0040c4b4
mov esi, eax
jmp 0x7c06ba
mov byte [eax], 0x20
inc dword [esi + 0xc]
mov eax, dword [esp + 0xc]
movzx eax, ax
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040e33b
add esp, 8
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esi + 8]
sub eax, dword [esi + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], ecx
cmp ecx, eax
jbe 0x7c06f1
push ecx
push edx
mov ecx, esi
call fcn.0041214d
jmp 0x7c0709
test ecx, ecx
je 0x7c0709
push ecx
push edx
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x18]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, dword [ebx + 0xc]
mov esi, eax
and esi, 0xfffffff
je 0x7c0731
test eax, 0x40000000
je 0x7c0724
mov edx, dword [ebx - 4]
mov edx, dword [edx]
jmp 0x7c0733
mov eax, esi
mov edx, ebx
shl eax, 4
sub edx, eax
mov edx, dword [edx]
jmp 0x7c0733
xor edx, edx
movzx ecx, byte [ebx + 8]
mov dword [esp + 0x10], edx
cmp ecx, 0x1a
jne 0x7c07f4
cmp esi, 3
jne 0x7c0aff
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0762
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0768
mov byte [ecx], 0x20
inc dword [eax + 0xc]
push 1
push dword [ebx - 0x30]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0791
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c079e
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
push 1
push dword [ebx - 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c07d6
push 2
push 0x92f85c
call fcn.0041214d
push 1
push dword [ebx - 0x20]
mov ecx, edi
call fcn.007ccc90
jmp 0x7c1b71
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov ecx, edi
push 1
push dword [ebx - 0x20]
call fcn.007ccc90
jmp 0x7c1b71
cmp ecx, 0x1b
jne 0x7c09ed
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0812
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0818
mov byte [ecx], 0x20
inc dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
test eax, 0x40000000
je 0x7c0827
mov ecx, dword [ebx - 4]
jmp 0x7c0833
and eax, 0xfffffff
mov ecx, ebx
shl eax, 4
sub ecx, eax
push 1
push dword [ecx]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c085b
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0868
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [ebx + 0xc]
test eax, 0x40000000
je 0x7c0877
mov ecx, dword [ebx - 4]
jmp 0x7c0883
and eax, 0xfffffff
mov ecx, ebx
shl eax, 4
sub ecx, eax
push 1
push dword [ecx + 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c08ac
push 2
push 0x9eef50
call fcn.0041214d
jmp 0x7c08b9
mov ax, word [0x9eef50]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [ebx + 0xc]
shr eax, 1
and eax, 0x7ffffff
dec eax
push eax
push ebx
push 0
lea eax, [esp + 0x30]
push ebx
push eax
call fcn.0040b9e2
mov eax, dword [esp + 0x44]
add esp, 0x14
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x28], eax
je 0x7c09bd
mov ebx, dword [esp + 0x28]
nop dword [eax]
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 5
jae 0x7c090d
push 5
push 0x9eef54
call fcn.0041214d
jmp 0x7c0920
mov eax, dword [0x9eef54]
mov dword [edx], eax
mov al, byte [0x9eef58]
mov byte [edx + 4], al
add dword [ecx + 0xc], 5
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c092f
mov ecx, dword [esi - 4]
jmp 0x7c093b
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
lea eax, [ebx + 1]
shl eax, 5
push 1
push dword [eax + ecx]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c096a
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0977
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
cmp ebx, 0xfffffffe
je 0x7c0981
lea edx, [ebx + 1]
jmp 0x7c0983
xor edx, edx
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0992
mov ecx, dword [esi - 4]
jmp 0x7c099e
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
shl edx, 5
push 1
push dword [edx + ecx + 0x10]
mov ecx, edi
call fcn.007ccc90
inc ebx
cmp ebx, dword [esp + 0x30]
jne 0x7c08f0
mov ebx, dword [esp + 0x18]
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 4
jae 0x7c09dd
push 4
push 0x9eef5c
call fcn.0041214d
jmp 0x7c1b71
mov eax, dword [0x9eef5c]
mov dword [edx], eax
add dword [ecx + 0xc], 4
jmp 0x7c1b71
cmp ecx, 0x1c
jne 0x7c0aff
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0a0b
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0a11
mov byte [ecx], 0x20
inc dword [eax + 0xc]
push 1
push dword [esp + 0x14]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 3
jae 0x7c0a3b
push 3
push 0x9eef64
call fcn.0041214d
jmp 0x7c0a50
mov ax, word [0x9eef64]
mov word [edx], ax
mov al, byte [0x9eef66]
mov byte [edx + 2], al
add dword [ecx + 0xc], 3
mov eax, dword [ebx + 0xc]
mov esi, 1
and eax, 0xfffffff
mov dword [esp + 0xc], eax
cmp eax, esi
je 0x7c0adc
mov edx, 0x10
mov dword [esp + 0x10], edx
nop
cmp esi, 1
je 0x7c0aa3
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0a92
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0a9f
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
test eax, 0x40000000
je 0x7c0ab2
mov ecx, dword [ebx - 4]
jmp 0x7c0abe
and eax, 0xfffffff
mov ecx, ebx
shl eax, 4
sub ecx, eax
push 1
push dword [ecx + edx]
mov ecx, edi
call fcn.007ccc90
mov edx, dword [esp + 0x10]
inc esi
add edx, 0x10
mov dword [esp + 0x10], edx
cmp esi, dword [esp + 0xc]
jne 0x7c0a70
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0af4
push 0x5d
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c1b71
mov byte [ecx], 0x5d
inc dword [eax + 0xc]
jmp 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x4f
cmovne esi, eax
test esi, esi
je 0x7c0c97
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0b26
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0b2c
mov byte [ecx], 0x20
inc dword [eax + 0xc]
push dword [edi]
lea ecx, [edi + 0x14]
push dword [ebx]
call fcn.007baf20
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0b4d
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0b53
mov byte [ecx], 0x20
inc dword [eax + 0xc]
mov eax, dword [esi + 0xc]
and eax, 0xfffffff
mov dword [esp + 0xc], eax
mov eax, 0
mov dword [esp + 0x10], eax
jbe 0x7c1b71
mov dword [esp + 0x18], eax
test eax, eax
je 0x7c0ba0
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0b93
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0ba0
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0bbd
push 2
push 0x9eef68
call fcn.0041214d
jmp 0x7c0bca
mov ax, word [0x9eef68]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0bd9
mov ecx, dword [esi - 4]
jmp 0x7c0be5
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
mov eax, dword [esp + 0x18]
push 0
push dword [eax + ecx]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0c12
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0c1f
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0c2e
mov ecx, dword [esi - 4]
jmp 0x7c0c3a
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0x10]
push 0
lea eax, [edx + eax*4]
push dword [ecx + eax*4]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0c6d
push 2
push 0x9573c0
call fcn.0041214d
jmp 0x7c0c7a
mov ax, word [0x9573c0]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov eax, dword [esp + 0x10]
add dword [esp + 0x18], 0x10
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jb 0x7c0b72
jmp 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x58
cmovne esi, eax
mov dword [esp + 0xc], esi
test esi, esi
je 0x7c0d35
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 8]
jb 0x7c0cc2
push 0x20
mov ecx, eax
call fcn.0040c4b4
jmp 0x7c0cc8
mov byte [ecx], 0x20
inc dword [eax + 0xc]
push 1
push 0
mov ecx, ebx
call fcn.00403de1
push eax
mov ecx, edi
call fcn.007ccc90
mov eax, dword [esp + 0xc]
mov esi, dword [esi + 0x24]
mov eax, dword [eax + 0x28]
lea eax, [esi + eax*4]
cmp esi, eax
je 0x7c1b71
mov ebx, eax
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0d11
push 2
push 0x92f85c
call fcn.0041214d
mov ecx, eax
jmp 0x7c0d1e
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
push dword [esi]
call fcn.004046f6
add esi, 4
cmp esi, ebx
jne 0x7c0cf2
mov ebx, dword [esp + 0x18]
jmp 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x59
cmovne esi, eax
mov dword [esp + 0xc], esi
test esi, esi
je 0x7c0e03
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 1
push 0
mov ecx, ebx
call fcn.00403de1
push eax
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0d84
push 2
push 0x92f85c
call fcn.0041214d
jmp 0x7c0d91
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
push 1
push 1
mov ecx, ebx
call fcn.00403de1
push eax
mov ecx, edi
call fcn.007ccc90
mov eax, dword [esp + 0xc]
mov esi, dword [esi + 0x24]
mov eax, dword [eax + 0x28]
lea eax, [esi + eax*4]
cmp esi, eax
je 0x7c1b71
mov ebx, eax
nop dword [eax + eax]
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c0ddf
push 2
push 0x92f85c
call fcn.0041214d
mov ecx, eax
jmp 0x7c0dec
mov ax, word [0x92f85c]
mov word [edx], ax
add dword [ecx + 0xc], 2
push dword [esi]
call fcn.004046f6
add esi, 4
cmp esi, ebx
jne 0x7c0dc0
mov ebx, dword [esp + 0x18]
jmp 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x5a
cmovne esi, eax
test esi, esi
je 0x7c0f88
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push dword [edi]
lea ecx, [edi + 0x14]
push dword [ebx]
call fcn.007baf20
mov al, byte [esi + 0xa]
test al, 1
jne 0x7c0e3a
test dword [esi + 0xc], 0xfffffff
je 0x7c0e46
mov ecx, dword [edi]
push 0xa
call fcn.0040b780
mov al, byte [esi + 0xa]
test al, 1
je 0x7c0e7d
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 0x11
jae 0x7c0e67
push 0x11
push str.__________cleanup
call fcn.0041214d
jmp 0x7c0e7d
movups xmm0, xmmword [str.__________cleanup]
movups xmmword [edx], xmm0
mov al, byte [0x9eef7c]
mov byte [edx + 0x10], al
add dword [ecx + 0xc], 0x11
mov eax, dword [esi + 0xc]
and eax, 0xfffffff
mov dword [esp + 0x14], eax
je 0x7c1b71
xor ebx, ebx
test ebx, ebx
jne 0x7c0e9b
test byte [esi + 0xa], 1
je 0x7c0ec2
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 1
jae 0x7c0eb8
push 1
push 0x92406c
call fcn.0041214d
jmp 0x7c0ec2
mov al, byte [0x92406c]
mov byte [edx], al
inc dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0ed1
mov edx, dword [esi - 4]
jmp 0x7c0edd
and eax, 0xfffffff
mov edx, esi
shl eax, 4
sub edx, eax
mov ecx, dword [edi]
mov eax, ebx
shl eax, 4
mov dword [esp + 0xc], eax
mov eax, dword [edx + eax]
mov edx, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 4], 0x10
mov eax, dword [ecx + 8]
je 0x7c0f1e
sub eax, edx
cmp eax, 0x10
jae 0x7c0f0e
push 0x10
push str.__________catch
call fcn.0041214d
jmp 0x7c0f49
movups xmm0, xmmword [str.__________catch]
movups xmmword [edx], xmm0
add dword [ecx + 0xc], 0x10
jmp 0x7c0f49
sub eax, edx
cmp eax, 0x11
jae 0x7c0f33
push 0x11
push str.__________filter
call fcn.0041214d
jmp 0x7c0f49
movups xmm0, xmmword [str.__________filter]
movups xmmword [edx], xmm0
mov al, byte [0x9eefa8]
mov byte [edx + 0x10], al
add dword [ecx + 0xc], 0x11
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0f58
mov ecx, dword [esi - 4]
jmp 0x7c0f64
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
mov eax, dword [esp + 0xc]
push 1
push dword [ecx + eax]
mov ecx, edi
call fcn.007ccc90
inc ebx
cmp ebx, dword [esp + 0x14]
jne 0x7c0e91
mov ebx, dword [esp + 0x18]
jmp 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x22
cmovne esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x7c1168
mov edx, dword [edi]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
sub eax, ecx
mov dword [esp + 0x14], ecx
cmp eax, 8
jae 0x7c0fc1
push 8
push str._within
mov ecx, edx
call fcn.0041214d
jmp 0x7c0fdf
mov ebx, dword [esp + 0x14]
mov eax, dword [str._within]
mov ecx, dword [0x9eefb4]
mov dword [ebx], eax
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [eax + 4], ecx
add dword [edx + 0xc], 8
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c0fee
mov ecx, dword [esi - 4]
jmp 0x7c0ffa
and eax, 0xfffffff
mov ecx, esi
shl eax, 4
sub ecx, eax
push 0
push dword [ecx]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 2
jae 0x7c1022
push 2
push 0x9eef50
call fcn.0041214d
jmp 0x7c102f
mov ax, word [0x9eef50]
mov word [edx], ax
add dword [ecx + 0xc], 2
mov edx, dword [esi + 0xc]
and edx, 0xfffffff
test dword [esi + 0xc], 0x40000000
je 0x7c104c
mov ecx, dword [esi - 4]
shl edx, 4
add edx, dword [esi - 4]
jmp 0x7c1062
mov eax, edx
mov ecx, edx
shl eax, 4
mov edx, esi
shl ecx, 4
sub edx, eax
add edx, ecx
mov eax, esi
sub eax, ecx
mov ecx, eax
movzx eax, byte [esi + 0xa]
and eax, 1
inc eax
push 0x402a0e
push edx
shl eax, 4
add eax, ecx
push 0x402a0e
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00411171
mov eax, dword [esp + 0x38]
add esp, 0x14
cmp eax, dword [esp + 0x2c]
je 0x7c10f6
mov esi, eax
xor ebx, ebx
push dword [eax]
call dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x7c10d8
mov edx, dword [edi]
mov ecx, dword [edx + 8]
sub ecx, dword [edx + 0xc]
cmp ecx, 2
jae 0x7c10c4
push 2
push 0x92f85c
mov ecx, edx
call fcn.0041214d
jmp 0x7c10d4
mov ecx, dword [edx + 0xc]
mov ax, word [0x92f85c]
mov word [ecx], ax
add dword [edx + 0xc], 2
mov eax, dword [esp + 0x14]
push 1
push eax
mov ecx, edi
call fcn.007ccc90
lea eax, [esi + 0x10]
inc ebx
mov esi, eax
cmp eax, dword [esp + 0x2c]
jne 0x7c1096
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 9
jae 0x7c1113
push 9
push str.__unwind
call fcn.0041214d
jmp 0x7c112b
movq xmm0, qword [str.__unwind]
movq qword [edx], xmm0
mov al, byte [0x9eefc4]
mov byte [edx + 8], al
add dword [ecx + 0xc], 9
test byte [esi + 0xa], 1
je 0x7c12ba
mov eax, dword [esi + 0xc]
test eax, 0x40000000
je 0x7c1144
mov esi, dword [esi - 4]
jmp 0x7c114e
and eax, 0xfffffff
shl eax, 4
sub esi, eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x7c12ba
push 1
push eax
mov ecx, edi
call fcn.007ccc90
jmp 0x7c1b71
lea eax, [ecx - 0x4b]
cmp eax, 1
ja 0x7c11f3
test ebx, ebx
je 0x7c11f3
mov ecx, dword [edi]
push str._within
call fcn.00407b67
push 0
push dword [ebx - 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push 0x9eef50
call fcn.00407b67
mov eax, dword [ebx + 0xc]
mov esi, 0
and eax, 0xfffffff
sub eax, 1
mov dword [esp + 0x1c], eax
je 0x7c11e5
test esi, esi
je 0x7c11c4
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov eax, dword [ebx + 0xc]
mov ecx, esi
and eax, 0xfffffff
sub ecx, eax
add ecx, ecx
push 1
push dword [ebx + ecx*8]
mov ecx, edi
call fcn.007ccc90
inc esi
cmp esi, dword [esp + 0x1c]
jb 0x7c11b2
mov ecx, dword [edi]
push 0x5d
call fcn.0040b780
jmp 0x7c1b71
mov al, byte [ebx + 8]
cmp al, 0x19
jne 0x7c120f
test edx, edx
jne 0x7c120f
mov ecx, dword [edi]
push str._void
call fcn.00407b67
jmp 0x7c1b71
cmp al, 0x21
mov dword [esp + 0x1c], 0
mov esi, ebx
cmovne esi, dword [esp + 0x1c]
test esi, esi
je 0x7c1259
mov ecx, dword [edi]
push str._from
call fcn.00407b67
push 0
push dword [esi - 0x20]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push str._to
call fcn.00407b67
push 1
push dword [esi - 0x10]
mov ecx, edi
call fcn.007ccc90
jmp 0x7c1b71
cmp al, 0x20
mov dword [esp + 0x1c], 0
mov esi, ebx
cmovne esi, dword [esp + 0x1c]
test esi, esi
je 0x7c12cb
mov ecx, dword [edi]
push str._from
call fcn.00407b67
mov ecx, dword [esi + 0xc]
mov eax, esi
shl ecx, 4
sub eax, ecx
mov ecx, edi
push 0
push dword [eax]
call fcn.007ccc90
mov ecx, dword [edi]
push str._unwind
call fcn.00407b67
test byte [esi + 0xa], 1
je 0x7c12ba
mov eax, dword [esi + 0xc]
mov ecx, edi
shl eax, 4
sub esi, eax
push 1
push dword [esi + 0x10]
call fcn.007ccc90
jmp 0x7c1b71
mov ecx, dword [edi]
push str.to_caller
call fcn.00407b67
jmp 0x7c1b71
cmp al, 0x50
mov dword [esp + 0x1c], 0
mov esi, ebx
cmovne esi, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
test esi, esi
je 0x7c14a5
mov eax, 0xffc
test word [esi + 0xa], ax
je 0x7c1316
mov ecx, dword [edi]
push 0x925080
call fcn.00407b67
movzx eax, word [esi + 0xa]
push dword [edi]
shr eax, 2
and eax, 0x3ff
push eax
call fcn.007b2f50
add esp, 8
mov eax, dword [esi - 0x10]
lea ecx, [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
push 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x14], eax
call fcn.0040b965
test al, al
je 0x7c136f
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00412616
mov ecx, dword [edi]
push eax
push 0x20
call fcn.0040b780
mov ecx, eax
call fcn.00414533
lea ecx, [esp + 0x38]
call fcn.0040aeed
push dword [edi]
push ebx
push dword [esp + 0x14]
call fcn.007b9200
mov ecx, dword [edi]
add esp, 0xc
push 0x20
call fcn.0040b780
mov eax, dword [esp + 0x1c]
push dword [edi]
mov ecx, dword [esp + 0x28]
cmp dword [eax + 4], 0x100
cmovae ecx, eax
push ecx
lea ecx, [edi + 0x14]
call fcn.007baf20
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 0
push dword [esp + 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push 0x28
call fcn.0040b780
mov ecx, esi
call fcn.0041527b
mov dword [esp + 0x24], eax
test eax, eax
je 0x7c141f
xor ebx, ebx
test ebx, ebx
je 0x7c13e6
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov eax, dword [esi + 0xc]
mov ecx, ebx
and eax, 0xfffffff
sub ecx, eax
lea eax, [esp + 0x1c]
add ecx, ecx
push ebx
push eax
mov esi, dword [esi + ecx*8]
lea ecx, [esp + 0x18]
call fcn.0040f411
mov ecx, edi
push dword [eax]
push esi
call fcn.007cd070
mov esi, dword [esp + 0x14]
inc ebx
cmp ebx, dword [esp + 0x24]
jb 0x7c13d4
mov ebx, dword [esp + 0x18]
mov al, byte [esi + 0xa]
and al, 3
cmp al, 2
jne 0x7c144e
mov eax, dword [esi + 0x18]
test eax, eax
je 0x7c144e
mov eax, dword [eax + 0x28]
test eax, eax
je 0x7c144e
mov eax, dword [eax + 0x10]
cmp dword [eax + 4], 0x100
jb 0x7c144e
mov ecx, dword [edi]
push str.__...
call fcn.00407b67
mov ecx, dword [edi]
push 0x29
call fcn.0040b780
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.0040b965
test al, al
je 0x7c1498
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x14]
call fcn.004140fb
mov ecx, dword [edi + 0x10]
push dword [eax]
call fcn.00403779
mov ecx, dword [edi]
mov esi, eax
push 0x9eee10
call fcn.00407b67
push esi
mov ecx, eax
call fcn.0040517d
mov esi, dword [esp + 0x14]
push esi
mov ecx, edi
call fcn.007ccd70
jmp 0x7c1b71
cmp al, 0x1d
mov dword [esp + 0x24], 0
mov esi, ebx
cmovne esi, dword [esp + 0x24]
mov dword [esp + 0x14], esi
test esi, esi
je 0x7c1682
mov eax, dword [esi - 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, 0xffc
test word [esi + 0xa], ax
je 0x7c150e
mov ecx, dword [edi]
push 0x925080
call fcn.00407b67
movzx eax, word [esi + 0xa]
push dword [edi]
shr eax, 2
and eax, 0x3ff
push eax
call fcn.007b2f50
add esp, 8
push 0
lea ecx, [esp + 0x14]
call fcn.0040b965
test al, al
je 0x7c1549
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00412616
mov ecx, dword [edi]
push eax
push 0x20
call fcn.0040b780
mov ecx, eax
call fcn.00414533
lea ecx, [esp + 0x38]
call fcn.0040aeed
push dword [edi]
push ebx
push dword [esp + 0x14]
call fcn.007b9200
mov ecx, dword [edi]
add esp, 0xc
push 0x20
call fcn.0040b780
mov eax, dword [esp + 0x24]
push dword [edi]
mov ecx, dword [esp + 0x20]
cmp dword [eax + 4], 0x100
cmovae ecx, eax
push ecx
lea ecx, [edi + 0x14]
call fcn.007baf20
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 0
push dword [esp + 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push 0x28
call fcn.0040b780
mov ecx, esi
call fcn.0041527b
mov dword [esp + 0x24], eax
test eax, eax
je 0x7c15fb
xor ebx, ebx
nop
test ebx, ebx
je 0x7c15c2
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov eax, dword [esi + 0xc]
mov ecx, ebx
and eax, 0xfffffff
sub ecx, eax
lea eax, [esp + 0x1c]
add ecx, ecx
push ebx
push eax
mov esi, dword [esi + ecx*8]
lea ecx, [esp + 0x18]
call fcn.0040f411
mov ecx, edi
push dword [eax]
push esi
call fcn.007cd070
mov esi, dword [esp + 0x14]
inc ebx
cmp ebx, dword [esp + 0x24]
jb 0x7c15b0
mov ebx, dword [esp + 0x18]
mov ecx, dword [edi]
push 0x29
call fcn.0040b780
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.0040b965
test al, al
je 0x7c1641
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x14]
call fcn.004140fb
mov ecx, dword [edi + 0x10]
push dword [eax]
call fcn.00403779
mov ecx, dword [edi]
mov esi, eax
push 0x9eee10
call fcn.00407b67
push esi
mov ecx, eax
call fcn.0040517d
mov esi, dword [esp + 0x14]
mov ecx, edi
push esi
call fcn.007ccd70
mov ecx, dword [edi]
push str._n__________to
call fcn.00407b67
push 1
push dword [esi - 0x30]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push str._unwind
call fcn.00407b67
push 1
push dword [esi - 0x20]
mov ecx, edi
call fcn.007ccc90
jmp 0x7c1b71
cmp al, 0x23
mov dword [esp + 0x24], 0
mov esi, ebx
cmovne esi, dword [esp + 0x24]
mov dword [esp + 0xc], esi
test esi, esi
je 0x7c18a3
mov eax, dword [esi - 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, 0xffc
test word [esi + 0xa], ax
je 0x7c16eb
mov ecx, dword [edi]
push 0x925080
call fcn.00407b67
movzx eax, word [esi + 0xa]
push dword [edi]
shr eax, 2
and eax, 0x3ff
push eax
call fcn.007b2f50
add esp, 8
push 0
lea ecx, [esp + 0x14]
call fcn.0040b965
test al, al
je 0x7c1726
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00412616
mov ecx, dword [edi]
push eax
push 0x20
call fcn.0040b780
mov ecx, eax
call fcn.00414533
lea ecx, [esp + 0x38]
call fcn.0040aeed
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
mov eax, dword [esp + 0x24]
push dword [edi]
mov ecx, dword [esp + 0x20]
cmp dword [eax + 4], 0x100
cmovae ecx, eax
push ecx
lea ecx, [edi + 0x14]
call fcn.007baf20
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 0
push dword [esp + 0x18]
mov ecx, edi
call fcn.007ccc90
mov ecx, dword [edi]
push 0x28
call fcn.0040b780
mov ecx, esi
call fcn.0041527b
xor edx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edx
test eax, eax
je 0x7c17d5
mov ebx, esi
test edx, edx
je 0x7c1798
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0xc]
mov ecx, edx
and eax, 0xfffffff
sub ecx, eax
lea eax, [esp + 0x1c]
add ecx, ecx
push edx
push eax
mov esi, dword [ebx + ecx*8]
lea ecx, [esp + 0x18]
call fcn.0040f411
mov ecx, edi
push dword [eax]
push esi
call fcn.007cd070
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x24]
jb 0x7c1782
mov ebx, dword [esp + 0x18]
mov ecx, dword [edi]
push 0x29
call fcn.0040b780
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.0040b965
test al, al
je 0x7c181b
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x14]
call fcn.004140fb
mov ecx, dword [edi + 0x10]
push dword [eax]
call fcn.00403779
mov ecx, dword [edi]
mov esi, eax
push 0x9eee10
call fcn.00407b67
push esi
mov ecx, eax
call fcn.0040517d
mov esi, dword [esp + 0xc]
mov ecx, edi
push esi
call fcn.007ccd70
mov ecx, dword [edi]
push str._n__________to
call fcn.00407b67
mov ecx, dword [esi + 0x2c]
mov eax, esi
add ecx, 2
shl ecx, 4
sub eax, ecx
mov ecx, edi
push 1
push dword [eax]
call fcn.007ccc90
mov ecx, dword [edi]
push 0x9eef50
call fcn.00407b67
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x24], eax
test eax, eax
je 0x7c1895
xor ebx, ebx
test ebx, ebx
je 0x7c1876
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov eax, ebx
mov ecx, edi
sub eax, dword [esi + 0x2c]
dec eax
add eax, eax
push 1
push dword [esi + eax*8]
call fcn.007ccc90
inc ebx
cmp ebx, dword [esp + 0x24]
jne 0x7c1864
mov ebx, dword [esp + 0x18]
mov ecx, dword [edi]
push 0x5d
call fcn.0040b780
jmp 0x7c1b71
cmp al, 0x37
mov dword [esp + 0x24], 0
mov esi, ebx
cmovne esi, dword [esp + 0x24]
mov dword [esp + 0x24], esi
test esi, esi
je 0x7c199e
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
movzx eax, word [esi + 0xa]
mov ecx, eax
shr al, 5
test al, 1
je 0x7c18e6
mov ecx, dword [edi]
push str.inalloca
call fcn.00407b67
movzx ecx, word [esi + 0xa]
shr cl, 6
test cl, 1
je 0x7c18fa
mov ecx, dword [edi]
push str.swifterror
call fcn.00407b67
push dword [edi]
lea ecx, [edi + 0x14]
push dword [esi + 0x24]
call fcn.007baf20
cmp dword [esi - 0x10], 0
je 0x7c1928
mov ecx, esi
call fcn.0040ace5
test al, al
jne 0x7c1928
mov ecx, dword [esi - 0x10]
push 0x20
mov ecx, dword [ecx]
call fcn.0040ac86
test al, al
jne 0x7c1940
mov ecx, dword [edi]
push 0x92f85c
call fcn.00407b67
push 1
push dword [esi - 0x10]
mov ecx, edi
call fcn.007ccc90
mov ecx, esi
call fcn.0040737e
test eax, eax
je 0x7c196c
mov ecx, esi
call fcn.0040737e
mov ecx, dword [edi]
mov esi, eax
push str.__align
call fcn.00407b67
push esi
mov ecx, eax
call fcn.004046f6
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov esi, dword [eax + 4]
shr esi, 8
test esi, esi
je 0x7c1b71
mov ecx, dword [edi]
push str.__addrspace_
call fcn.00407b67
push 0x29
push esi
mov ecx, eax
call fcn.004046f6
mov ecx, eax
call fcn.0040b780
jmp 0x7c1b71
lea eax, [ecx - 0x3e]
cmp eax, 0xc
ja 0x7c19c7
test edx, edx
je 0x7c19c0
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 1
push dword [esp + 0x14]
mov ecx, edi
call fcn.007ccc90
push str._to
jmp 0x7c19eb
cmp ecx, 0x54
jne 0x7c1a03
test edx, edx
je 0x7c19e6
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push 1
push dword [esp + 0x14]
mov ecx, edi
call fcn.007ccc90
push 0x92f85c
mov ecx, dword [edi]
call fcn.00407b67
push dword [edi]
lea ecx, [edi + 0x14]
push dword [ebx]
call fcn.007baf20
jmp 0x7c1b71
test edx, edx
je 0x7c1b71
xor eax, eax
mov esi, ebx
cmp ecx, 0x3a
cmovne esi, eax
test esi, esi
je 0x7c1a29
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push dword [edi]
push dword [esi + 0x24]
jmp 0x7c1a44
xor eax, eax
mov esi, ebx
cmp ecx, 0x38
cmovne esi, eax
test esi, esi
je 0x7c1a59
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push dword [edi]
push dword [esi]
lea ecx, [edi + 0x14]
call fcn.007baf20
mov ecx, dword [edi]
push 0x2c
call fcn.0040b780
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov dword [esp + 0xc], eax
mov al, byte [ebx + 8]
mov byte [esp + 0x14], 0
cmp al, 0x51
je 0x7c1af6
cmp al, 0x39
je 0x7c1af6
cmp al, 0x57
je 0x7c1af6
cmp al, 0x19
je 0x7c1af6
mov ecx, dword [ebx + 0xc]
mov edx, 1
mov eax, ecx
and eax, 0xfffffff
mov dword [esp + 0x24], eax
cmp eax, edx
je 0x7c1add
mov eax, ecx
lea esi, [edx + 0xf]
and eax, 0x40000000
mov dword [esp + 0x1c], eax
test eax, eax
je 0x7c1aad
mov ecx, dword [ebx - 4]
jmp 0x7c1abb
mov eax, ecx
mov ecx, ebx
and eax, 0xfffffff
shl eax, 4
sub ecx, eax
mov eax, dword [esi + ecx]
test eax, eax
je 0x7c1aca
mov ecx, dword [esp + 0xc]
cmp dword [eax], ecx
jne 0x7c1af6
inc edx
add esi, 0x10
cmp edx, dword [esp + 0x24]
je 0x7c1add
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
jmp 0x7c1aa4
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
push dword [edi]
lea ecx, [edi + 0x14]
push dword [esp + 0x10]
call fcn.007baf20
jmp 0x7c1afb
mov byte [esp + 0x14], 1
mov ecx, dword [edi]
push 0x20
call fcn.0040b780
mov eax, dword [ebx + 0xc]
mov esi, 0
and eax, 0xfffffff
mov dword [esp + 0x24], eax
je 0x7c1b71
xor edx, edx
mov dword [esp + 0x10], edx
nop dword [eax]
test esi, esi
je 0x7c1b36
mov ecx, dword [edi]
push 2
push 0x92f85c
call fcn.0040e9f3
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
test eax, 0x40000000
je 0x7c1b45
mov ecx, dword [ebx - 4]
jmp 0x7c1b51
and eax, 0xfffffff
mov ecx, ebx
shl eax, 4
sub ecx, eax
push dword [esp + 0x14]
push dword [edx + ecx]
mov ecx, edi
call fcn.007ccc90
mov edx, dword [esp + 0x10]
inc esi
add edx, 0x10
mov dword [esp + 0x10], edx
cmp esi, dword [esp + 0x24]
jne 0x7c1b20
mov al, byte [ebx + 8]
xor ecx, ecx
cmp al, 0x38
mov esi, ebx
cmovne esi, ecx
mov dword [esp + 0x24], esi
test esi, esi
je 0x7c1be9
mov ecx, esi
call fcn.0040a362
test al, al
je 0x7c1bb4
mov ax, word [esi + 0xa]
shr ax, 6
and ax, 7
movzx ecx, ax
movzx eax, byte [esi + 0x24]
push eax
push ecx
mov ecx, esi
call fcn.0040326a
push eax
mov ecx, edi
call fcn.007c8440
mov ecx, esi
call fcn.0040312f
test eax, eax
je 0x7c1d18
mov ecx, dword [edi]
push 8
push str.__align
call fcn.0040e9f3
mov ecx, dword [esp + 0x24]
mov esi, eax
call fcn.0040312f
push eax
mov ecx, esi
call fcn.004046f6
jmp 0x7c1d18
xor ecx, ecx
mov esi, ebx
cmp al, 0x39
cmovne esi, ecx
mov dword [esp + 0x24], esi
test esi, esi
je 0x7c1c5e
mov ecx, esi
call fcn.0040a362
test al, al
je 0x7c1c29
mov ax, word [esi + 0xa]
shr ax, 6
and ax, 7
movzx ecx, ax
movzx eax, byte [esi + 0x24]
push eax
push ecx
mov ecx, esi
call fcn.0040326a
push eax
mov ecx, edi
call fcn.007c8440
mov ecx, esi
call fcn.00404f7a
test eax, eax
je 0x7c1d18
mov ecx, dword [edi]
push 8
push str.__align
call fcn.0040e9f3
mov ecx, dword [esp + 0x24]
mov esi, eax
call fcn.00404f7a
push eax
mov ecx, esi
call fcn.004046f6
jmp 0x7c1d18
xor ecx, ecx
mov edx, ebx
cmp al, 0x3c
cmovne edx, ecx
test edx, edx
je 0x7c1c98
movzx eax, byte [edx + 0x24]
movzx ecx, word [edx + 0xa]
push eax
mov eax, ecx
shr ecx, 2
shr eax, 5
and ecx, 7
and eax, 7
push eax
push ecx
mov ecx, edx
call fcn.0040326a
push eax
mov ecx, edi
call fcn.007c8510
jmp 0x7c1d18
xor ecx, ecx
mov edx, ebx
cmp al, 0x3d
cmovne edx, ecx
test edx, edx
je 0x7c1cca
mov ax, word [edx + 0xa]
shr ax, 1
and ax, 7
movzx ecx, ax
movzx eax, byte [edx + 0x24]
push eax
push ecx
mov ecx, edx
call fcn.0040326a
push eax
mov ecx, edi
call fcn.007c8440
jmp 0x7c1d18
xor ecx, ecx
mov edx, ebx
cmp al, 0x3b
cmovne edx, ecx
test edx, edx
je 0x7c1cf9
mov ax, word [edx + 0xa]
and ax, 7
movzx ecx, ax
movzx eax, byte [edx + 0x24]
push eax
push ecx
mov ecx, edx
call fcn.0040326a
push eax
mov ecx, edi
call fcn.007c8440
jmp 0x7c1d18
xor edx, edx
mov ecx, ebx
cmp al, 0x57
cmovne ecx, edx
test ecx, ecx
je 0x7c1d18
push dword [ecx + 0x28]
push dword [ecx + 0x24]
push dword [ecx]
push dword [edi]
call fcn.007b4010
add esp, 0x10
cmp dword [ebx + 0x1c], 0
lea eax, [esp + 0x5c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 4
jne 0x7c1d42
mov ax, word [ebx + 0xa]
shr ax, 0xf
test al, al
je 0x7c1d4e
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040a07e
sub esp, 8
mov ecx, edi
mov eax, esp
mov dword [eax], 0x92f85c
mov dword [eax + 4], 2
lea eax, [esp + 0x58]
push eax
call fcn.007c27f0
push ebx
mov ecx, edi
call fcn.007c01e0
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x5c]
cmp eax, ecx
je 0x7c1d8a
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0x74
ret 4