Function at 0x3d8c5a0
Capabilities:
Decode data using base64 via dword translation table
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x240
mov esi, esp
mov dword [esi + 0x228], ebp
mov edi, edx
mov dword [esi + 0x168], ecx
lea eax, [esi + 0x230]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x3dbcec0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
lea eax, [0x3dcc8eb]
lea ebx, [esi + 0x90]
mov dword [ebx], eax
mov ecx, dword [ebx]
mov dword [ebx], 0x7e0bc9e1
call 0x3d8c600
pop eax
mov dword [esi + 0x198], eax
mov edx, dword [ebx]
call fcn.03d81c6a
xorps xmm0, xmm0
movups xmmword [ebx + 0xc], xmm0
movaps xmmword [ebx], xmm0
mov ecx, 0xfffffffc
mov edx, dword [ecx + 0x3dcf2ac]
xor edx, dword [eax + ecx + 4]
mov dword [esi + ecx + 0x94], edx
add ecx, 4
cmp ecx, 0x18
jb 0x3d8c61d
mov al, byte [eax + 0x1c]
xor al, 0x99
mov byte [esi + 0xac], al
movaps xmm0, xmmword [esi + 0x90]
movaps xmmword [esi + 0x200], xmm0
movups xmm0, xmmword [esi + 0x9d]
movups xmmword [esi + 0x20d], xmm0
cmp byte [esi + 0x20b], 0xc0
jl 0x3d911d4
cmp byte [esi + 0x210], 0xbf
jle 0x3d911d4
lea eax, [esi + 0x20b]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], 5
cmp byte [eax + 0xb], 0xbf
jle 0x3d911ed
lea eax, [esi + 0x210]
lea ebx, [esi + 0x130]
mov dword [ebx], eax
lea eax, [esi + 0x98]
mov dword [eax - 8], 0x3de3000
mov edx, 0x3d93278
mov dword [eax - 4], edx
lea ecx, [esi + 0x30]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x168]
lea ecx, [ecx + 0xc]
mov dword [eax + 8], ecx
mov dword [ebx + 4], 6
mov dword [eax + 0xc], 0x3d82658
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edx
lea edx, [esi + 0x40]
mov dword [edx], 0x3dcf2c8
mov ecx, 4
mov dword [edx + 4], ecx
mov dword [edx + 0x10], 0
lea eax, [esi + 0x90]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea ebx, [esi + 0x70]
mov ecx, ebx
call fcn.03d92750
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x15c], eax
mov eax, dword [edi + 0x20]
mov dword [esi + 0x158], eax
lea eax, [esi + 0x90]
mov ecx, 4
add eax, ecx
mov dword [esi + 0x188], eax
mov eax, dword [edi + 0x28]
mov dword [esi + 0x88], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x10c], eax
mov eax, dword [edi + 0x40]
mov dword [esi + 0x180], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x17c], eax
mov eax, dword [edi + 0x70]
mov dword [esi + 0x1bc], eax
mov eax, dword [edi + 0x74]
mov dword [esi + 0x1b8], eax
lea eax, [edi + 0x78]
mov dword [esi + 0x1b4], eax
lea eax, [edi + 0x90]
mov dword [esi + 0x1b0], eax
lea eax, [edi + 0x9c]
mov dword [esi + 0x1ac], eax
lea eax, [edi + 0xa8]
mov dword [esi + 0x1a8], eax
lea eax, [edi + 0x84]
mov dword [esi + 0x1c4], eax
mov eax, dword [edi + 0x64]
mov dword [esi + 0x1c0], eax
mov eax, dword [edi + 0x68]
mov dword [esi + 0x18c], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x1e4], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x1e0], eax
mov ecx, dword [esi + 0x168]
mov eax, dword [ecx + 4]
mov dword [esi + 0x1d0], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x1cc], eax
mov dword [esi + 0x24], ebx
lea ecx, [esi + 0x90]
sub esp, 0x14
mov eax, dword [esi + 0x158]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x15c]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x1e0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov edx, dword [esi + 0x1e4]
call fcn.03d869b0
add esp, 0x14
mov eax, dword [esi + 0x90]
cmp eax, 0x80000000
jne 0x3d8c867
mov ecx, 0x14
xor edx, edx
call fcn.03da4c60
mov edi, dword [esi + 0x94]
mov ebx, dword [esi + 0x98]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x3d8c7dd
cmp dword [ebx + 8], 9
jb 0x3d8c853
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x3d8c7dd
mov dword [esi + 0x184], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x6c], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ecx
xor eax, eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 1
mov dword [esi + 0x48], eax
mov byte [esi + 0x58], 0x80
test ecx, ecx
je 0x3d8c8bf
xor eax, eax
mov edx, dword [esi + 0x6c]
movzx edx, byte [edx + eax]
lea edi, [edx - 9]
cmp edi, 0x17
ja 0x3d8c8dc
mov ebx, 0x800013
bt ebx, edi
jae 0x3d8c8dc
inc eax
mov dword [esi + 0x54], eax
cmp ecx, eax
jne 0x3d8c89e
mov dword [esi + 0x90], 5
lea ecx, [esi + 0x40]
lea edx, [esi + 0x90]
call fcn.03dcca45
jmp 0x3d8da63
cmp edx, 0x5b
je 0x3d8c99e
cmp edx, 0x7b
jne 0x3d8da42
mov byte [esi + 0x58], 0x7f
inc eax
mov dword [esi + 0x54], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x30], eax
mov byte [esi + 0x34], 1
lea ecx, [esi + 0x90]
lea edx, [esi + 0x30]
call fcn.03d83b3d
cmp byte [esi + 0x90], 0
je 0x3d8ca41
mov dword [esi + 0x20], 0x80000000
mov edi, dword [esi + 0x164]
mov dword [esi + 0xc], 0x80000000
mov dword [esi + 0x164], edi
mov edi, dword [esi + 0x94]
mov bl, 1
lea ecx, [esi + 0x40]
mov eax, dword [esi + 0x20]
cmp eax, 0x80000000
je 0x3d8c965
test eax, eax
je 0x3d8c965
push dword [esi + 0x19c]
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esi + 0x40]
mov dword [esi], 0x80000000
test bl, bl
je 0x3d8ceaf
mov ebx, edi
and dword [esi + 0xc], 0x7fffffff
je 0x3d8ceb1
push dword [esi + 0x164]
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esi + 0x40]
jmp 0x3d8ceb1
mov byte [esi + 0x58], 0x7f
inc eax
mov dword [esi + 0x54], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x30], eax
mov byte [esi + 0x34], 1
lea ecx, [esi + 0x90]
lea edx, [esi + 0x30]
call fcn.03d839dd
mov edi, dword [esi + 0x90]
cmp edi, 0x80000001
jne 0x3d8c9df
mov eax, dword [esi + 0x94]
mov dword [esi + 8], eax
mov ebx, 0x80000000
jmp 0x3d8cf7f
cmp edi, 0x80000000
je 0x3d8dc47
mov eax, dword [esi + 0x94]
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0x98]
lea ecx, [esi + 0x90]
lea edx, [esi + 0x30]
call fcn.03d839dd
mov eax, dword [esi + 0x90]
cmp eax, 0x80000001
jne 0x3d8cf55
mov eax, dword [esi + 0x94]
mov dword [esi + 8], eax
test edi, edi
je 0x3d8ca37
push dword [esi + 0x10]
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, 0x80000000
jmp 0x3d8cf7f
mov dword [esi + 0x20], 0x80000000
mov dword [esi + 0xc], 0x80000000
movzx eax, byte [esi + 0x91]
cmp eax, 3
je 0x3d8db13
test eax, eax
je 0x3d8cabb
cmp eax, 1
jne 0x3d8cb22
cmp dword [esi + 0x20], 0x80000000
jne 0x3d8e2c9
mov edx, dword [esi + 0x30]
lea ecx, [esi + 0x90]
call fcn.03d83cc5
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
cmp eax, 0x80000000
je 0x3d8dcce
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x1dc], eax
mov dword [esi + 0x19c], edi
mov edi, dword [esi + 0x164]
jmp 0x3d8cafc
cmp dword [esi + 0xc], 0x80000000
jne 0x3d8e2e7
mov edx, dword [esi + 0x30]
lea ecx, [esi + 0x90]
call fcn.03d83cc5
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
cmp eax, 0x80000000
je 0x3d8dcc0
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x1d8], eax
lea ecx, [esi + 0x90]
lea edx, [esi + 0x30]
call fcn.03d83b3d
cmp byte [esi + 0x90], 0
mov dword [esi + 0x164], edi
je 0x3d8ca4f
jmp 0x3d8c92f
mov ebx, dword [esi + 0x30]
mov ecx, ebx
call fcn.03d82ca7
test eax, eax
jne 0x3d8dc8a
mov dword [ebx + 8], 0
lea edx, [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
mov dword [esi], ecx
cmp eax, ecx
mov edi, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x14], edx
jae 0x3d8cb89
mov edx, dword [edx]
movzx ecx, byte [edx + eax]
mov ebx, ecx
mov dword [esi + 4], ecx
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x3d8cea5
mov edi, 0x800013
bt edi, ecx
mov edi, dword [esi + 8]
jae 0x3d8cea5
inc eax
mov dword [edi + 0x14], eax
cmp dword [esi], eax
jne 0x3d8cb54
mov eax, dword [esi]
mov ebx, dword [esi + 0x14]
jmp 0x3d8cb8e
mov dword [esi + 4], ecx
mov ebx, edx
mov cl, 1
mov dword [esi + 0x10], 0
test cl, 1
jne 0x3d8e27a
movzx ecx, byte [esi + 4]
cmp ecx, 0x65
mov byte [esi + 0x18], dl
jle 0x3d8cbcf
cmp ecx, 0x73
jg 0x3d8cbf0
cmp ecx, 0x66
je 0x3d8cc3a
cmp ecx, 0x6e
jne 0x3d8cbe2
inc eax
mov dword [edi + 0x14], eax
mov ecx, edi
mov edx, str.ullruealse0123456789abcdefuuuuuuuubtnufruuuuuuuuuuuuuuuuuu
jmp 0x3d8cc54
cmp ecx, 0x22
je 0x3d8cc2d
cmp ecx, 0x2d
je 0x3d8cc60
cmp ecx, 0x5b
je 0x3d8cbfa
mov eax, dword [esi + 4]
add al, 0xd0
cmp al, 0xa
jb 0x3d8cc64
jmp 0x3d8e8a5
cmp ecx, 0x74
je 0x3d8cc49
cmp ecx, 0x7b
jne 0x3d8cbe2
movzx eax, byte [esi + 0x10]
and eax, 1
mov ecx, dword [edi]
mov edx, dword [edi + 8]
sub ecx, edx
cmp ecx, eax
jb 0x3d8cce8
test byte [esi + 0x10], 1
je 0x3d8cc20
mov eax, dword [edi + 4]
mov cl, byte [esi + 0x18]
mov byte [eax + edx], cl
inc edx
mov dword [edi + 8], edx
inc dword [edi + 0x14]
xor edx, edx
mov eax, dword [esi + 4]
jmp 0x3d8cc9e
inc eax
mov dword [edi + 0x14], eax
mov ecx, ebx
call fcn.03d9fce8
jmp 0x3d8cc6b
inc eax
mov dword [edi + 0x14], eax
mov ecx, edi
mov edx, 0x3dd800e
push 4
jmp 0x3d8cc56
inc eax
mov dword [edi + 0x14], eax
mov ecx, edi
mov edx, 0x3dd800b
push 3
call fcn.03d8307c
add esp, 4
jmp 0x3d8cc6b
inc eax
mov dword [edi + 0x14], eax
mov ecx, edi
call fcn.03d83dcb
test eax, eax
jne 0x3d8dc8a
mov dl, 1
test byte [esi + 0x10], 1
je 0x3d8cc83
mov edi, dword [esi + 8]
mov al, byte [esi + 0x18]
jmp 0x3d8cc9e
mov edi, dword [esi + 8]
mov eax, dword [edi + 8]
test eax, eax
je 0x3d8cab3
lea ecx, [eax - 1]
mov dword [edi + 8], ecx
mov ecx, dword [edi + 4]
mov al, byte [ecx + eax - 1]
mov dword [esi + 0x10], edx
mov byte [esi + 0x18], al
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
mov dword [esi], ecx
cmp eax, ecx
jae 0x3d8cce4
mov ecx, dword [ebx]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + eax]
mov ebx, edx
add ebx, 0xfffffff7
cmp ebx, 0x17
ja 0x3d8ccfb
mov edi, 0x800013
bt edi, ebx
jae 0x3d8ccfb
inc eax
mov ecx, dword [esi + 8]
mov dword [ecx + 0x14], eax
cmp dword [esi], eax
jne 0x3d8ccb5
mov eax, dword [esi]
mov ebx, dword [esi + 0x14]
mov cl, 1
jmp 0x3d8cd00
mov cl, 1
jmp 0x3d8cd00
mov ecx, edi
push eax
call fcn.03dcca75
add esp, 4
mov edx, dword [edi + 8]
jmp 0x3d8cc10
xor ecx, ecx
mov ebx, dword [esi + 0x14]
test cl, 1
jne 0x3d8dc58
cmp dl, 0x5d
mov edi, dword [esi + 8]
je 0x3d8cd23
movzx edx, dl
cmp edx, 0x7d
jne 0x3d8cd85
mov dl, byte [esi + 0x18]
cmp dl, 0x7b
je 0x3d8cd2b
jmp 0x3d8cd99
mov dl, byte [esi + 0x18]
cmp dl, 0x5b
jne 0x3d8cd99
inc eax
mov dword [edi + 0x14], eax
mov edx, dword [edi + 8]
test edx, edx
je 0x3d8cab3
mov ecx, edi
lea edi, [edx - 1]
mov dword [ecx + 8], edi
mov edi, dword [ecx + 4]
mov cl, byte [edi + edx - 1]
mov byte [esi + 0x18], cl
mov cl, 1
mov dword [esi + 0x10], ecx
mov cl, 1
cmp eax, dword [esi]
jae 0x3d8cd00
mov edi, dword [ebx]
movzx edx, byte [edi + eax]
mov ebx, edx
add ebx, 0xfffffff7
cmp ebx, 0x17
ja 0x3d8ccfb
mov ecx, 0x800013
bt ecx, ebx
jae 0x3d8ccfb
inc eax
mov ecx, dword [esi + 8]
mov dword [ecx + 0x14], eax
cmp dword [esi], eax
jne 0x3d8cd59
mov eax, dword [esi]
mov cl, 1
jmp 0x3d8ccfd
cmp edx, 0x2c
mov dl, byte [esi + 0x18]
jne 0x3d8cd99
test byte [esi + 0x10], 1
je 0x3d8cda3
inc eax
mov dword [edi + 0x14], eax
jmp 0x3d8cda3
test byte [esi + 0x10], 1
jne 0x3d8e2fb
cmp dl, 0x7b
jne 0x3d8ce52
cmp eax, dword [esi]
jae 0x3d8d7f7
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
movzx ebx, byte [edx + eax]
add ebx, 0xfffffff7
cmp ebx, 0x19
ja 0x3d8dd31
mov ecx, 0x800013
bt ecx, ebx
jae 0x3d8cde0
inc eax
mov dword [edi + 0x14], eax
cmp dword [esi], eax
jne 0x3d8cdb9
jmp 0x3d8d7f7
cmp ebx, 0x19
jne 0x3d8dd31
inc eax
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x14]
call fcn.03d9fce8
mov bl, 1
test eax, eax
jne 0x3d8e02d
mov ecx, edi
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
mov dword [esi], edx
cmp eax, edx
jae 0x3d8db46
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
movzx ebx, byte [edx + eax]
lea edi, [ebx - 9]
cmp edi, 0x17
ja 0x3d8ce3c
mov ecx, 0x800013
bt ecx, edi
jae 0x3d8ce3c
inc eax
mov ecx, dword [esi + 8]
mov dword [ecx + 0x14], eax
cmp dword [esi], eax
jne 0x3d8ce16
jmp 0x3d8db46
cmp ebx, 0x3a
jne 0x3d8dd87
inc eax
mov edi, dword [esi + 8]
mov dword [edi + 0x14], eax
mov ebx, dword [esi + 0x14]
mov dl, byte [esi + 0x18]
mov cl, 1
mov dword [esi + 0x10], ecx
mov dword [esi + 4], ecx
mov cl, 1
cmp eax, dword [esi]
jae 0x3d8cb97
mov edx, dword [ebx]
movzx edi, byte [edx + eax]
mov ecx, edi
mov dword [esi + 4], edi
add edi, 0xfffffff7
cmp edi, 0x17
ja 0x3d8ce98
mov ecx, 0x800013
bt ecx, edi
jae 0x3d8ce98
inc eax
mov edi, dword [esi + 8]
mov dword [edi + 0x14], eax
cmp dword [esi], eax
jne 0x3d8ce66
mov eax, dword [esi]
mov cl, 1
mov dl, byte [esi + 0x18]
jmp 0x3d8cb97
xor ecx, ecx
mov edi, dword [esi + 8]
mov dl, byte [esi + 0x18]
jmp 0x3d8cb97
xor ecx, ecx
mov ebx, dword [esi + 0x14]
jmp 0x3d8cb90
mov ebx, edi
inc byte [esi + 0x58]
call fcn.03d9ff98
mov edi, eax
mov ecx, dword [esi]
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], ebx
mov eax, dword [esi + 0x1d8]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x19c]
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x1dc]
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], edi
cmp ecx, 0x80000000
jne 0x3d8cf2b
mov eax, 0x80000000
test edi, edi
je 0x3d8cf21
lea eax, [esi + 0xa8]
push eax
call fcn.03d82811
mov eax, 0x80000000
add esp, 4
lea edx, [esi + 0x40]
mov ecx, ebx
jmp 0x3d8d00c
test edi, edi
lea ecx, [esi + 0x90]
jne 0x3d8cffd
lea eax, [esi + 0x98]
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0x130], xmm0
lea edx, [esi + 0x40]
mov ecx, ebx
mov eax, dword [esi]
jmp 0x3d8d00c
cmp eax, 0x80000000
je 0x3d8dd54
mov dword [esi + 4], eax
mov eax, dword [esi + 0x94]
mov dword [esi], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], eax
mov dword [esi + 0x10], ebx
mov ebx, edi
inc byte [esi + 0x58]
lea ecx, [esi + 0x40]
call fcn.03d82a2f
mov edi, eax
mov dword [esi + 0x90], ebx
mov ecx, dword [esi + 8]
mov dword [esi + 0x94], ecx
mov eax, dword [esi + 0x10]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xa4], eax
mov eax, dword [esi]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa8], edi
cmp ebx, 0x80000000
jne 0x3d8cfef
mov eax, 0x80000000
test edi, edi
je 0x3d8d009
lea eax, [esi + 0xa8]
push eax
mov edi, ecx
call fcn.03d82811
mov ecx, edi
mov eax, 0x80000000
add esp, 4
jmp 0x3d8d009
test edi, edi
lea ecx, [esi + 0x90]
je 0x3d8d133
call fcn.03d839ab
mov eax, 0x80000000
mov ecx, edi
lea edx, [esi + 0x40]
cmp eax, 0x80000000
je 0x3d8da5e
movaps xmm0, xmmword [esi + 0x130]
mov edi, ecx
lea ebx, [esi + 0x70]
movups xmmword [ebx + 8], xmm0
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], ecx
mov ebx, eax
mov ecx, edx
call fcn.03d9ff32
mov dword [esi], eax
test eax, eax
je 0x3d8d04b
lea ecx, [esi + 0x70]
call fcn.03d839ab
mov ebx, dword [esi]
jmp 0x3d8da65
mov dword [esi + 8], edi
mov edi, dword [esi + 0x78]
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x80]
mov dword [esi], eax
mov edx, dword [esi + 0x84]
cmp dword [esi + 0x40], 0
mov dword [esi + 0x18], edx
je 0x3d8d089
push dword [esi + 0x44]
push 0
push dword [0x3de3a38]
mov dword [esi + 4], edi
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, edi
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x18]
mov dword [esi + 0x1e8], ebx
mov eax, dword [esi + 8]
mov dword [esi + 0x1ec], eax
mov dword [esi + 0x1f0], edi
mov dword [esi + 0x1f4], ecx
mov eax, edx
shr eax, 3
mov ebx, edx
and ebx, 7
cmp ebx, 1
sbb eax, 0xffffffff
mov dword [esi + 0xc], eax
mov eax, edx
shr eax, 2
mov ecx, edx
and ecx, 3
cmp ecx, 1
mov ecx, dword [esi]
mov dword [esi + 0x1f8], ecx
mov dword [esi + 0x1fc], edx
sbb eax, 0xffffffff
lea ecx, [eax + eax*2]
mov dword [esi + 0x20], ecx
xor edx, edx
inc edx
call fcn.03da19ec
mov dword [esi + 0x64], eax
mov edi, edx
cmp ebx, 5
ja 0x3d8d16a
mov eax, dword [ebx*4 + 0x3d919a0]
add eax, dword [esi + 0x198]
jmp eax
mov edx, dword [esi + 0x190]
jmp 0x3d8df2b
lea eax, [esi + 0x98]
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0x130], xmm0
lea edx, [esi + 0x40]
mov eax, ebx
mov ecx, dword [esi + 8]
jmp 0x3d8d00c
mov edx, dword [esi + 0x18]
xor eax, eax
mov ecx, edx
sub ecx, ebx
cmovb ecx, eax
cmp ecx, 0x20
mov dword [esi + 4], edi
mov dword [esi + 0x1c], ecx
jb 0x3d8d670
lea eax, [ecx - 0x20]
mov dword [esi + 0x12c], eax
xor ecx, ecx
mov eax, 0x20
mov ebx, dword [esi]
test eax, eax
je 0x3d91315
cmp eax, edx
mov edi, dword [esi + 4]
ja 0x3d91326
mov dword [esi + 0x10], ecx
lea edx, [ecx + 0x1a]
cmp edx, dword [esi + 0x20]
ja 0x3d91306
movzx ebx, byte [ebx + eax - 0x20]
mov cl, byte [ebx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8dd99
lea edx, [eax - 0x20]
mov dword [esi + 0x28], edx
mov edx, dword [esi]
movzx ebx, byte [edx + eax - 0x1f]
mov dl, byte [ebx + 0x3dcf3c4]
cmp dl, 0xff
je 0x3d8dda0
mov ebx, dword [esi]
movzx ebx, byte [ebx + eax - 0x1e]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8dda8
mov ebx, dword [esi]
movzx ebx, byte [ebx + eax - 0x1d]
mov dword [esi + 8], eax
mov ah, byte [ebx + 0x3dcf3c4]
cmp ah, 0xff
je 0x3d8ddb0
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x1c]
mov dh, byte [ebx + 0x3dcf3c4]
cmp dh, 0xff
je 0x3d8ddb8
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x1b]
mov al, byte [ebx + 0x3dcf3c4]
cmp al, 0xff
je 0x3d8ddc0
mov byte [esi + 0x2c], dh
mov dh, cl
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x1a]
mov cl, byte [ebx + 0x3dcf3c4]
mov byte [esi + 0x14], cl
cmp cl, 0xff
je 0x3d8ddc8
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x19]
mov cl, byte [ebx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8ddd0
movzx edi, dl
shl edi, 0x14
movzx ebx, dh
shl ebx, 0x1a
or ebx, edi
movzx edi, ch
shl edi, 0xe
mov byte [esi + 0x68], cl
movzx ecx, ah
shl ecx, 8
or ecx, edi
or ecx, ebx
movzx edi, byte [esi + 0x2c]
shl edi, 2
movzx eax, al
mov edx, eax
shr eax, 4
or eax, edi
mov edi, dword [esi + 4]
or eax, ecx
shl edx, 0x1c
movzx ecx, byte [esi + 0x14]
shl ecx, 0x16
or ecx, edx
movzx edx, byte [esi + 0x68]
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esi + 0x10]
mov dword [edi + ecx + 4], edx
bswap eax
mov dword [edi + ecx], eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
movzx ebx, byte [eax + edx - 0x18]
mov cl, byte [ebx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8ddec
mov eax, dword [esi]
movzx ebx, byte [eax + edx - 0x17]
mov al, byte [ebx + 0x3dcf3c4]
cmp al, 0xff
je 0x3d8ddf6
mov edx, dword [esi]
mov ebx, dword [esi + 8]
movzx ebx, byte [edx + ebx - 0x16]
mov ah, byte [ebx + 0x3dcf3c4]
cmp ah, 0xff
je 0x3d8de00
mov edx, dword [esi]
mov ebx, dword [esi + 8]
movzx ebx, byte [edx + ebx - 0x15]
mov dh, byte [ebx + 0x3dcf3c4]
cmp dh, 0xff
je 0x3d8de0a
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x14]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8de17
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x13]
mov dl, byte [ebx + 0x3dcf3c4]
cmp dl, 0xff
je 0x3d8de26
mov byte [esi + 0x2c], ch
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x12]
mov ch, byte [ebx + 0x3dcf3c4]
mov byte [esi + 0x14], ch
cmp ch, 0xff
je 0x3d8de35
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0x11]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8de43
movzx ebx, al
shl ebx, 0x14
movzx edi, cl
shl edi, 0x1a
or edi, ebx
movzx eax, ah
shl eax, 0xe
movzx ebx, dh
shl ebx, 8
or ebx, eax
or ebx, edi
movzx edi, byte [esi + 0x2c]
shl edi, 2
movzx eax, dl
mov byte [esi + 0x2c], ch
mov ecx, eax
shr eax, 4
or eax, edi
mov edi, dword [esi + 4]
or eax, ebx
shl ecx, 0x1c
movzx edx, byte [esi + 0x14]
shl edx, 0x16
or edx, ecx
movzx ecx, byte [esi + 0x2c]
shl ecx, 0x10
or ecx, edx
bswap ecx
mov edx, dword [esi + 0x10]
mov dword [edi + edx + 0xa], ecx
bswap eax
mov dword [edi + edx + 6], eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
movzx ebx, byte [eax + edx - 0x10]
mov cl, byte [ebx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8de5b
mov eax, dword [esi]
movzx ebx, byte [eax + edx - 0xf]
mov al, byte [ebx + 0x3dcf3c4]
cmp al, 0xff
je 0x3d8de6a
mov edx, dword [esi]
mov ebx, dword [esi + 8]
movzx ebx, byte [edx + ebx - 0xe]
mov ah, byte [ebx + 0x3dcf3c4]
cmp ah, 0xff
je 0x3d8de92
mov edx, dword [esi]
mov ebx, dword [esi + 8]
movzx ebx, byte [edx + ebx - 0xd]
mov dh, byte [ebx + 0x3dcf3c4]
cmp dh, 0xff
je 0x3d8de99
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0xc]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8dea3
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0xb]
mov dl, byte [ebx + 0x3dcf3c4]
cmp dl, 0xff
je 0x3d8deaa
mov byte [esi + 0x2c], ch
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 0xa]
mov ch, byte [ebx + 0x3dcf3c4]
mov byte [esi + 0x14], ch
cmp ch, 0xff
je 0x3d8deb1
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 9]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8decd
movzx ebx, al
shl ebx, 0x14
movzx edi, cl
shl edi, 0x1a
or edi, ebx
movzx eax, ah
shl eax, 0xe
movzx ebx, dh
shl ebx, 8
or ebx, eax
or ebx, edi
movzx edi, byte [esi + 0x2c]
shl edi, 2
movzx eax, dl
mov byte [esi + 0x2c], ch
mov ecx, eax
shr eax, 4
or eax, edi
mov edi, dword [esi + 4]
or eax, ebx
shl ecx, 0x1c
movzx edx, byte [esi + 0x14]
shl edx, 0x16
or edx, ecx
movzx ecx, byte [esi + 0x2c]
shl ecx, 0x10
or ecx, edx
bswap ecx
mov edx, dword [esi + 0x10]
mov dword [edi + edx + 0x10], ecx
bswap eax
mov dword [edi + edx + 0xc], eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
movzx ebx, byte [eax + edx - 8]
mov cl, byte [ebx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8dedd
mov eax, edx
mov edx, dword [esi]
movzx ebx, byte [edx + eax - 7]
mov al, byte [ebx + 0x3dcf3c4]
cmp al, 0xff
je 0x3d8dee4
mov edx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [edx + edi - 6]
mov ah, byte [ebx + 0x3dcf3c4]
cmp ah, 0xff
je 0x3d8deeb
mov edx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [edx + edi - 5]
mov dh, byte [ebx + 0x3dcf3c4]
cmp dh, 0xff
je 0x3d8def2
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 4]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8def9
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 3]
mov dl, byte [ebx + 0x3dcf3c4]
cmp dl, 0xff
je 0x3d8df00
mov byte [esi + 0x2c], ch
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 2]
mov ch, byte [ebx + 0x3dcf3c4]
mov byte [esi + 0x14], ch
cmp ch, 0xff
je 0x3d8df07
mov ebx, dword [esi]
mov edi, dword [esi + 8]
movzx ebx, byte [ebx + edi - 1]
mov ch, byte [ebx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8df0e
movzx ebx, al
shl ebx, 0x14
movzx edi, cl
shl edi, 0x1a
or edi, ebx
movzx eax, ah
shl eax, 0xe
movzx ebx, dh
shl ebx, 8
or ebx, eax
or ebx, edi
movzx edi, byte [esi + 0x2c]
shl edi, 2
movzx eax, dl
mov byte [esi + 0x2c], ch
mov ecx, eax
shr eax, 4
or eax, edi
or eax, ebx
shl ecx, 0x1c
movzx edx, byte [esi + 0x14]
shl edx, 0x16
or edx, ecx
movzx edi, byte [esi + 0x2c]
shl edi, 0x10
or edi, edx
bswap edi
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov dword [edx + ecx + 0x16], edi
bswap eax
mov dword [edx + ecx + 0x12], eax
add ecx, 0x18
add dword [esi + 0xc], 0xfffffffc
mov eax, dword [esi + 8]
mov edi, eax
cmp eax, dword [esi + 0x12c]
lea eax, [eax + 0x20]
mov edx, dword [esi + 0x18]
mov ebx, dword [esi]
jbe 0x3d8d197
jmp 0x3d8d676
xor edi, edi
xor ecx, ecx
mov ebx, dword [esi]
mov edx, dword [esi + 0x1c]
cmp edx, 8
jb 0x3d8d808
add edx, 0xfffffff8
mov eax, edi
cmp edi, edx
mov dword [esi + 0x1c], edx
jae 0x3d8d80a
lea edx, [edi + 8]
cmp edi, 0xfffffff8
je 0x3d912cc
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x18]
ja 0x3d912ea
lea eax, [ecx + 8]
cmp ecx, 0xfffffff7
ja 0x3d912fa
cmp eax, dword [esi + 0x20]
ja 0x3d912db
movzx eax, byte [ebx + edi]
mov dl, byte [eax + 0x3dcf3c4]
mov byte [esi + 8], dl
cmp dl, 0xff
je 0x3d8dd73
mov dword [esi + 0x10], ecx
movzx eax, byte [ebx + edi + 1]
mov dl, byte [eax + 0x3dcf3c4]
cmp dl, 0xff
je 0x3d8dd40
mov ecx, ebx
movzx eax, byte [ebx + edi + 2]
mov bh, byte [eax + 0x3dcf3c4]
cmp bh, 0xff
je 0x3d8dd45
movzx eax, byte [ecx + edi + 3]
mov bl, byte [eax + 0x3dcf3c4]
cmp bl, 0xff
je 0x3d8dd4a
movzx eax, byte [ecx + edi + 4]
mov dh, byte [eax + 0x3dcf3c4]
cmp dh, 0xff
je 0x3d8dd4f
mov byte [esi + 0x68], dl
movzx eax, byte [ecx + edi + 5]
mov dl, byte [eax + 0x3dcf3c4]
mov byte [esi + 0x2c], dl
cmp dl, 0xff
je 0x3d8dd66
mov byte [esi + 0x12c], bl
mov bl, bh
movzx eax, byte [ecx + edi + 6]
mov bh, byte [eax + 0x3dcf3c4]
mov byte [esi + 0x28], bh
cmp bh, 0xff
je 0x3d8dd6b
movzx eax, byte [ecx + edi + 7]
mov bh, byte [eax + 0x3dcf3c4]
cmp bh, 0xff
je 0x3d8dd70
mov byte [esi + 0x154], dh
movzx edx, byte [esi + 0x68]
shl edx, 0x14
movzx eax, byte [esi + 8]
shl eax, 0x1a
or eax, edx
movzx edx, bl
shl edx, 0xe
movzx ecx, byte [esi + 0x12c]
shl ecx, 8
or ecx, edx
or ecx, eax
movzx edi, byte [esi + 0x154]
shl edi, 2
movzx eax, byte [esi + 0x2c]
mov edx, eax
shr eax, 4
or eax, edi
mov edi, dword [esi + 4]
or eax, ecx
shl edx, 0x1c
movzx ecx, byte [esi + 0x28]
shl ecx, 0x16
or ecx, edx
movzx edx, bh
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esi + 0x10]
mov dword [edi + ecx + 4], edx
bswap eax
mov dword [edi + ecx], eax
add ecx, 6
dec dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov edi, eax
mov edx, dword [esi + 0x1c]
cmp eax, edx
mov ebx, dword [esi]
jb 0x3d8d692
jmp 0x3d8d80a
mov dword [esi + 0x90], 3
mov ecx, edi
jmp 0x3d8dc7f
mov eax, edi
mov edi, dword [esi + 0xc]
cmp edi, 2
jb 0x3d8da00
mov edx, dword [esi + 0x18]
mov ebx, edx
neg ebx
mov dword [esi + 0x1d4], ebx
mov ebx, edx
sub ebx, eax
mov dword [esi + 8], ebx
dec edi
mov dword [esi + 0x14], eax
cmp eax, edx
ja 0x3d91332
lea edx, [ecx + 6]
mov dword [esi + 0x10], ecx
cmp ecx, 0xfffffff9
mov ebx, dword [esi]
ja 0x3d9133f
mov dword [esi + 0xc], edi
mov dword [esi + 0x1c], edx
cmp edx, dword [esi + 0x20]
ja 0x3d9134c
mov ecx, dword [esi + 0x1d4]
mov eax, dword [esi + 0x14]
add ecx, eax
je 0x3d91206
movzx edx, byte [ebx + eax]
mov cl, byte [edx + 0x3dcf3c4]
mov byte [esi + 0x2c], cl
cmp cl, 0xff
mov edi, eax
je 0x3d8de76
mov eax, dword [esi + 8]
cmp eax, 2
jb 0x3d91214
movzx edx, byte [ebx + edi + 1]
mov cl, byte [edx + 0x3dcf3c4]
mov byte [esi + 0x68], cl
cmp cl, 0xff
je 0x3d8de14
cmp eax, 3
jb 0x3d91223
movzx edx, byte [ebx + edi + 2]
mov cl, byte [edx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8de21
cmp eax, 4
jb 0x3d91237
movzx edx, byte [ebx + edi + 3]
mov ch, byte [edx + 0x3dcf3c4]
cmp ch, 0xff
je 0x3d8de30
cmp eax, 5
jb 0x3d9124b
mov byte [esi + 0x12c], ch
mov byte [esi + 0x28], cl
mov edx, edi
mov edi, ebx
mov ecx, edx
movzx edx, byte [ebx + edx + 4]
mov bl, byte [edx + 0x3dcf3c4]
mov byte [esi + 0x154], bl
cmp bl, 0xff
je 0x3d8de3c
cmp eax, 6
jb 0x3d9125f
movzx edx, byte [edi + ecx + 5]
mov cl, byte [edx + 0x3dcf3c4]
cmp cl, 0xff
je 0x3d8de53
cmp eax, 7
jb 0x3d91273
mov eax, dword [esi + 0x14]
movzx edx, byte [edi + eax + 6]
mov al, byte [edx + 0x3dcf3c4]
cmp al, 0xff
je 0x3d8de62
cmp dword [esi + 8], 8
jb 0x3d91287
mov byte [esi + 0x100], al
mov byte [esi + 0x16c], cl
mov cl, byte [esi + 0x12c]
mov ch, byte [esi + 0x28]
mov eax, dword [esi + 0x14]
movzx edx, byte [edi + eax + 7]
mov bl, byte [edx + 0x3dcf3c4]
cmp bl, 0xff
je 0x3d8de71
movzx edx, byte [esi + 0x2c]
shl edx, 0x1a
movzx edi, byte [esi + 0x68]
shl edi, 0x14
or edi, edx
movzx edx, ch
shl edx, 0xe
or edx, edi
mov ch, bl
movzx ebx, cl
shl ebx, 8
or ebx, edx
movzx edi, byte [esi + 0x154]
shl edi, 2
or edi, ebx
movzx edx, byte [esi + 0x16c]
mov ebx, edx
shr edx, 4
or edx, edi
shl ebx, 0x1c
movzx edi, byte [esi + 0x100]
shl edi, 0x16
or edi, ebx
movzx ecx, ch
shl ecx, 0x10
or ecx, edi
mov ebx, dword [esi + 4]
bswap edx
mov edi, dword [esi + 0x10]
mov dword [ebx + edi], edx
bswap ecx
mov word [ebx + edi + 4], cx
add eax, 8
add dword [esi + 8], 0xfffffff8
mov ebx, dword [esi + 0x1c]
mov ecx, ebx
mov edi, dword [esi + 0xc]
dec edi
mov edx, dword [esi + 0x18]
jne 0x3d8d82b
jmp 0x3d8da05
mov ebx, ecx
mov edx, dword [esi + 0x18]
mov dword [esi + 0x1c], ebx
cmp eax, edx
mov ecx, eax
ja 0x3d91370
mov eax, dword [esi]
mov edi, dword [esi + 4]
jne 0x3d8db6a
mov dword [esi + 0x68], 0
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
xor ebx, ebx
jmp 0x3d8dce3
lea edi, [esi + 0x40]
mov ecx, edi
lea edx, [esi + 0x104]
push 0x3dcee5c
call fcn.03dcbe90
add esp, 4
mov ecx, eax
mov edx, edi
call fcn.03dcc84f
mov ebx, eax
cmp dword [esi + 0x40], 0
je 0x3d8da7c
push dword [esi + 0x44]
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, 0x14
xor edx, edx
call fcn.03da4c60
mov eax, dword [ebx]
cmp eax, 1
je 0x3d8da9e
test eax, eax
jne 0x3d8daee
cmp dword [ebx + 8], 0
je 0x3d8daee
mov eax, dword [ebx + 4]
jmp 0x3d8dadf
cmp byte [ebx + 4], 3
jne 0x3d8daee
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
mov dword [esi], eax
mov edi, dword [eax + 4]
mov dword [esi + 8], ecx
push ecx
call dword [edi]
add esp, 4
cmp dword [edi + 4], 0
je 0x3d8dadd
cmp dword [edi + 8], 9
jae 0x3d8dac8
mov eax, dword [esi + 8]
jmp 0x3d8dace
mov eax, dword [esi + 8]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esi]
push eax
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ebx
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esi + 0x184]
test eax, eax
je 0x3d8c7dd
push dword [esi + 0x6c]
jmp 0x3d8c854
mov eax, dword [esi + 0xc]
cmp eax, 0x80000000
sete bl
je 0x3d8e01e
mov edx, dword [esi + 0x20]
cmp edx, 0x80000000
je 0x3d8e034
mov ebx, dword [esi + 0x164]
mov dword [esi], eax
lea ecx, [esi + 0x40]
mov dword [esi + 0x20], edx
jmp 0x3d8ceb1
mov dword [esi + 0x90], 3
lea edx, [esi + 0x90]
call fcn.03dcca45
mov edi, eax
lea ecx, [esi + 0x40]
mov eax, dword [esi + 0x20]
mov bl, 1
jmp 0x3d8c943
add edx, eax
add eax, ecx
mov dword [esi], eax
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], edx
mov dword [esi + 0x28], eax
xor edx, edx
mov edi, dword [esi]
mov ebx, dword [esi + 0x2c]
lea ecx, [ebx + edx]
movzx eax, byte [edi + edx]
cmp eax, 0x3d
jne 0x3d8dbd6
test edx, edx
mov edi, dword [esi + 8]
cmove edi, ecx
test cl, 2
je 0x3d8dca7
mov dword [esi + 8], edi
mov edi, dword [esi]
lea ecx, [edi + edx]
inc ecx
inc edx
cmp ecx, dword [esi + 0x18]
jne 0x3d8dba5
jmp 0x3d8dcd5
test edx, edx
jne 0x3d8e3c2
mov ebx, eax
mov dword [esi + 0x68], ebx
mov bl, byte [eax + 0x3dcf3c4]
cmp bl, 0xff
je 0x3d8e3ca
mov eax, dword [esi + 0x28]
inc eax
movzx edi, bl
imul ecx, eax, 0x3a
xor ebx, ebx
shld ebx, edi, cl
mov dword [esi + 0x28], ebx
shl edi, cl
xor ebx, ebx
test cl, 0x20
mov ecx, dword [esi]
lea ecx, [ecx + edx + 1]
mov dword [esi], ecx
mov ecx, dword [esi + 0x28]
cmovne ecx, edi
mov dword [esi + 0x28], ecx
cmovne edi, ebx
mov ecx, dword [esi + 0x2c]
add ecx, edx
inc ecx
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x28]
or dword [esi + 0xc], ecx
or dword [esi + 0x10], edi
mov edx, dword [esi + 0x18]
cmp dword [esi], edx
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x14]
jne 0x3d8db9b
jmp 0x3d8dce3
xor ecx, ecx
mov edx, 0x3dcec5c
call fcn.03dcbba4
jmp 0x3d8c9d2
mov eax, 2
mov dl, byte [esi + 0x18]
cmp dl, 0x5b
mov ecx, dword [esi + 8]
je 0x3d8dc79
movzx eax, dl
cmp eax, 0x7b
jne 0x3d9135c
mov eax, 3
mov dword [esi + 0x90], eax
lea edx, [esi + 0x90]
call fcn.03dcca45
mov edi, eax
jmp 0x3d8c93b
mov edx, edi
add edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x24]
and ebx, 0xffff0000
or ebx, 0x3d00
jmp 0x3d8de8a
mov bl, 1
mov dword [esi + 0xc], 0x80000000
jmp 0x3d8c93d
mov bl, 1
jmp 0x3d8c962
mov ebx, dword [esi + 0x18]
sub ebx, edi
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x28]
add ebx, eax
test bl, 3
je 0x3d8dcfb
mov ebx, dword [esi + 0x24]
and ebx, 0xffffff00
or ebx, 3
jmp 0x3d8d128
mov dword [esi + 0x14], ecx
cmp eax, 8
ja 0x3d9138e
mov edx, 8
mov ecx, dword [eax*4 + 0x3d919b8]
add ecx, dword [esi + 0x198]
jmp ecx
mov dword [esi + 0x90], 0x11
jmp 0x3d8d801
or edi, 1
jmp 0x3d8dd73
or edi, 2
jmp 0x3d8dd73
or edi, 3
jmp 0x3d8dd73
or edi, 4
jmp 0x3d8dd73
xor ecx, ecx
inc ecx
mov edx, 0x3dcec5c
call fcn.03dcbba4
jmp 0x3d8ca1f
or edi, 5
jmp 0x3d8dd73
or edi, 6
jmp 0x3d8dd73
or edi, 7
mov ecx, edi
shl ecx, 0x18
shr edi, 8
shld edi, ecx, 8
movzx ebx, al
jmp 0x3d8de85
mov dword [esi + 0x90], 6
mov ecx, dword [esi + 8]
jmp 0x3d8db50
add eax, 0xffffffe0
mov ecx, eax
jmp 0x3d8ddd9
mov ecx, dword [esi + 0x28]
or ecx, 1
jmp 0x3d8ddd9
mov ecx, dword [esi + 0x28]
or ecx, 2
jmp 0x3d8ddd9
mov ecx, dword [esi + 0x28]
or ecx, 3
jmp 0x3d8ddd9
mov ecx, dword [esi + 0x28]
or ecx, 4
jmp 0x3d8ddd6
mov ecx, dword [esi + 0x28]
or ecx, 5
jmp 0x3d8ddd6
mov ecx, dword [esi + 0x28]
or ecx, 6
jmp 0x3d8ddd6
mov ecx, dword [esi + 0x28]
or ecx, 7
mov edi, dword [esi + 4]
mov eax, ecx
shl eax, 0x18
shr ecx, 8
shld ecx, eax, 8
mov edx, ecx
jmp 0x3d8df25
mov ecx, 8
jmp 0x3d8debc
mov ecx, 9
jmp 0x3d8de9e
mov ecx, 0xa
jmp 0x3d8de9e
mov ecx, 0xb
jmp 0x3d8de9e
inc edi
jmp 0x3d8de76
mov ecx, 0xc
jmp 0x3d8deb6
add edi, 2
jmp 0x3d8de76
mov ecx, 0xd
jmp 0x3d8deb6
add edi, 3
jmp 0x3d8de76
mov ecx, 0xe
jmp 0x3d8deb6
mov edi, ecx
add edi, 4
jmp 0x3d8de76
mov edx, dword [esi + 8]
add edx, 0xffffffe0
mov ecx, 0xf
jmp 0x3d8ded8
mov edi, dword [esi + 0x14]
add edi, 5
jmp 0x3d8de76
mov ecx, 0x10
jmp 0x3d8debc
mov edi, dword [esi + 0x14]
add edi, 6
jmp 0x3d8de76
mov ecx, 0x11
jmp 0x3d8de9e
add eax, 7
mov edi, eax
mov eax, edi
shl eax, 0x18
shr edi, 8
shld edi, eax, 8
movzx ebx, dl
shl ebx, 8
mov edx, edi
mov edi, dword [esi + 4]
jmp 0x3d8df2b
mov ecx, 0x12
jmp 0x3d8de9e
mov ecx, 0x13
mov edx, dword [esi + 8]
jmp 0x3d8debc
mov ecx, 0x14
jmp 0x3d8deb6
mov ecx, 0x15
jmp 0x3d8deb6
mov ecx, 0x16
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
add edx, 0xffffffe0
or ecx, edx
shl ecx, 0x18
shr edx, 8
shld edx, ecx, 8
jmp 0x3d8df25
mov edx, dword [esi + 8]
add edx, 0xffffffe0
mov ecx, 0x17
mov edi, dword [esi + 4]
jmp 0x3d8debf
mov eax, 0x18
jmp 0x3d8df16
mov eax, 0x19
jmp 0x3d8df16
mov eax, 0x1a
jmp 0x3d8df13
mov eax, 0x1b
jmp 0x3d8df13
mov eax, 0x1c
jmp 0x3d8df13
mov eax, 0x1d
jmp 0x3d8df13
mov eax, 0x1e
jmp 0x3d8df13
mov eax, 0x1f
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x28]
or eax, edx
shl eax, 0x18
shr edx, 8
shld edx, eax, 8
movzx ebx, bl
shl ebx, 8
cmp dword [esi + 0x64], 0
mov dword [esi + 0x190], edx
mov dword [esi + 8], ebx
je 0x3d8df4d
push edi
push 0
push dword [0x3de3a38]
mov edi, edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x3d8df4f
mov edi, edx
mov edx, ebx
lea eax, [esi + 0x40]
lea ecx, [esi + 0x70]
mov dword [esi + 0x70], edx
mov dword [esi + 0x74], edi
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], 0x3d93188
mov dword [esi + 0x90], 0x3dd8fa8
xor ecx, ecx
inc ecx
mov dword [esi + 0x94], ecx
mov dword [esi + 0xa0], 0
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x120]
lea edx, [esi + 0x90]
call fcn.03d92750
mov ebx, dword [esi + 0x120]
mov eax, dword [esi + 0x124]
mov dword [esi], eax
mov edi, dword [esi + 0x128]
mov al, byte [0x3de3a90]
xor ecx, ecx
mov edx, 0xc
call fcn.03db9190
test eax, eax
je 0x3d912ab
mov dword [eax], ebx
mov ecx, dword [esi]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [esi], 0x3dcf67c
mov edi, eax
mov ebx, dword [esi + 8]
lea ecx, [esi + 0x1e8]
call fcn.03d839ab
mov dword [esi + 0x24], ebx
mov ecx, 0x14
xor edx, edx
call fcn.03da4c60
push edi
mov ebx, dword [esi]
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x3d8dafd
cmp dword [ebx + 8], 9
jb 0x3d8e018
mov edi, dword [edi - 4]
push edi
jmp 0x3d8daef
mov ecx, str.idjobstruct_AgentJob_with_2_elements
mov edx, 2
call fcn.03dcbc39
mov edi, eax
jmp 0x3d8c93d
mov ecx, 0x3dcec3a
mov edx, 3
mov edi, eax
call fcn.03dcbc39
mov ebx, eax
mov dword [esi], 0x80000000
test edi, edi
je 0x3d8e065
push dword [esi + 0x164]
push 0
push dword [0x3de3a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esi + 0x40]
jmp 0x3d8ceb1
mov dword [esi + 0x90], 5
jmp 0x3d8d801
mov ecx, 0x3dcec3a
mov edx, 3
call fcn.03dcbbf7
mov edi, eax
mov eax, dword [esi + 0x20]
mov bl, 1
lea ecx, [esi + 0x40]
jmp 0x3d8c94a
mov ecx, str.idjobstruct_AgentJob_with_2_elements
mov edx, 2
call fcn.03dcbbf7
jmp 0x3d8dc8a
mov eax, 7
cmp dl, 0x5b
je 0x3d8e316
movzx eax, dl
cmp eax, 0x7b
jne 0x3d9137a
mov eax, 8
mov dword [esi + 0x90], eax
jmp 0x3d8d801
mov edx, dword [esi + 8]
jmp 0x3d8dca9
add ecx, dword [esi + 0x14]
movzx eax, byte [esi + 0x68]
shl eax, 8
mov ebx, dword [esi + 0x24]
and ebx, 0xffff0000
or ebx, eax
mov edx, ecx
jmp 0x3d8de8a
mov dword [esi + 0x90], 0xa
jmp 0x3d8d801
lea ecx, [esi + 0x200]
mov edx, 0x1d
push 0x3dcf2f8
push 0x10
push 0xb
call fcn.03dcc770
lea ecx, [esi + 0x200]
mov edx, 0x1d
push 0x3dcf308
push 0x16
push 0x10
call fcn.03dcc770
xor ecx, ecx
xor edx, edx
push 0x3dcf800
call fcn.03dcc2b0
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x3dcf810
call fcn.03dcc2b0
mov ecx, 2
mov edx, 2
push 0x3dcf820
call fcn.03dcc2b0
mov ecx, 3
mov edx, 3
push 0x3dcf830
call fcn.03dcc2b0
mov ecx, 4
mov edx, 4
push 0x3dcf840
call fcn.03dcc2b0
mov ecx, 5
mov edx, 5
push 0x3dcf850
call fcn.03dcc2b0
mov ecx, 6
mov edx, 6
push 0x3dcf860
call fcn.03dcc2b0
mov ecx, 7
mov edx, 7
push 0x3dcf870
call fcn.03dcc2b0
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
push 0x3dcfa3c
call fcn.03dcc2b0
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x238], 0
mov ecx, 4
mov edx, 0xc
call fcn.03dcc180
jmp 0x3d915e8
mov ecx, 0xfffffff8
push 0x3dcf7c0
call fcn.03dcc4f0
mov ecx, eax
mov edx, dword [esi + 0x20]
push 0x3dcf7d0
call fcn.03dcc310
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
push 0x3dcf7c0
call fcn.03dcc310
mov edx, eax
push 0x3dcf7d0
call fcn.03dcc4f0
mov ecx, edx
mov edx, dword [esi + 0x20]
push 0x3dcf7b0
call fcn.03dcc310
mov ecx, 0xffffffe0
xor edx, edx
push 0x3dcf7a0
call fcn.03dcc4f0
mov ecx, eax
push 0x3dcf7a0
call fcn.03dcc310
mov ecx, dword [esi + 0x14]
push 0x3dcf7e0
call fcn.03dcc250
mov ecx, dword [esi + 0x10]
push 0x3dcf7f0
call fcn.03dcc4f0
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
push 0x3dcf7f0
call fcn.03dcc310
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x3dceb3c
call fcn.03dcc370
push 0x3dcfa2c
call fcn.03dcc250
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x3dceb4c
call fcn.03dcc370
call fcn.03d9328e
call fcn.03d92320
xor ecx, ecx
inc ecx
call fcn.03dcc180
mov word [esi + 0xb0], 0
movaps xmm0, xmmword [0x3dce3a0]
movups xmmword [esi + 0xa0], xmm0
movaps xmm0, xmmword [0x3dce3b0]
movups xmmword [esi + 0x90], xmm0
lea edi, [esi + 0x70]
mov ecx, edi
mov edx, dword [esi + 0x88]
lea eax, [esi + 0x90]
push eax
push dword [esi + 0x10c]
call fcn.03daa100
add esp, 8
cmp byte [edi], 4
jne 0x3d91467
mov edx, dword [esi + 0x74]
mov dword [esi + 0x130], edx
xor eax, eax
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb0], eax
xorps xmm0, xmm0
movaps xmmword [esi + 0xa0], xmm0
movaps xmmword [esi + 0x90], xmm0
push 0x28
lea ecx, [esi + 0x90]
push ecx
push eax
mov dword [esi + 0x6c], edx
push edx
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
test eax, eax
jne 0x3d91451
call sub.KERNEL32.dll_GetLastError
jmp 0x3d9145e
test byte [esi + 0xb0], 0x10
jne 0x3d915ea
push dword [esi + 0x6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0xb8171bb1
mov edx, 0x4b1d7cd5
call fcn.03d820c0
mov edi, eax
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x88]
add eax, ecx
lea edx, [esi + 0x90]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov word [edx + 8], 0
lea ebx, [esi + 0x40]
mov ecx, ebx
call fcn.03d922ce
mov ecx, ebx
call fcn.03d922ee
push 4
push 0
push dword [ebx + 4]
call edi
xor ecx, ecx
call fcn.03db9130
movsd xmm0, qword [esi + 0x70]
movsd qword [esi + 0x40], xmm0
mov dword [esi + 0x238], 0xc
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x3dd98d0
push 0x3dd846c
lea eax, [esi + 0x40]
push eax
call fcn.03dcc5a0
add esp, 0xc
jmp 0x3d915e8
ud2
mov dword [esi + 0x238], 1
lea ecx, [esi + 0x40]
lea edx, [esi + 0x130]
push 0x3dbbde0
call fcn.03dbbe20
add esp, 4
cmp byte [esi + 0x40], 4
jne 0x3d91615
mov bl, byte [esi + 0x40]
jmp 0x3d9165d
mov ebx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x94], eax
mov dword [esi + 0x90], ebx
test bl, bl
jne 0x3d9165d
cmp eax, 1
je 0x3d9163a
cmp eax, 0x57
je 0x3d9163a
cmp eax, 0x32
jne 0x3d9165d
mov dword [esi + 0x238], 2
lea ecx, [esi + 0x70]
lea edx, [esi + 0x130]
push 0x3dbc720
call fcn.03dbbe20
add esp, 4
mov bl, byte [esi + 0x70]
push dword [esi + 0x6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp bl, 4
jne 0x3d91467
jmp 0x3d914b1