Function at 0x10001520
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1e0
mov esi, esp
mov dword [esi + 0x1c8], ebp
mov dword [esi + 0x1cc], esp
mov dword [esi + 0x1d8], 0xffffffff
mov dword [esi + 0x1d4], 0x100042b0
lea eax, [esi + 0x1d0]
lea edi, [esi + 0x50]
mov ecx, dword fs:[0]
mov dword [esi + 0x1d0], ecx
mov dword fs:[0], eax
lea eax, [0x1004cd87]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xba43093b
push dword [esi + 0x50]
push eax
call fcn.10004760
add esp, 8
mov ecx, 0x2a5d6c97
xor ecx, dword [eax]
lea eax, [esi + 0xc0]
mov dword [esi + 0xc0], ecx
lea ecx, [esi + 0x18]
push 4
push eax
push ecx
call fcn.10017900
add esp, 0xc
cmp dword [esi + 0x18], 0x80000001
jne 0x100037a9
mov eax, dword [esi + 0x1c]
lea ecx, [esi + 0x50]
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0xc], eax
lea eax, [0x1004c254]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x150f5c08
mov dword [esi + 0x1d8], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100044a0
add esp, 8
mov ecx, 0x99e464f2
mov edx, 0xba3fe7af
mov edi, 0x9f8ebd8a
mov ebx, 0x4fc4eb35
xor ecx, dword [eax]
xor edx, dword [eax + 4]
xor edi, dword [eax + 8]
xor ebx, dword [eax + 0xc]
movzx eax, byte [eax + 0x10]
xor al, 0xe4
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], edx
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], ebx
lea ecx, [esi + 0x18c]
mov byte [esi + 0x60], al
push 0x11
lea eax, [esi + 0x50]
push eax
push dword [esi + 0xc]
push dword [esi + 0xe4]
push ecx
call fcn.1001bbc0
add esp, 0x14
lea eax, [esi + 0x18c]
mov dword [esi + 0x1d8], 2
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001d410
add esp, 0xc
mov eax, dword [esi + 0x50]
lea edi, [esi + 0x50]
xor eax, 2
or eax, dword [esi + 0x54]
jne 0x10001701
cmp byte [esi + 0x58], 3
jne 0x100016df
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x2b
mov dword [esi + 0x14], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100016cd
push dword [ecx + 8]
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
lea edi, [esi + 0x50]
call fcn.100178e0
mov ecx, dword [eax]
or ecx, dword [eax + 4]
je 0x1000174c
movdqu xmm0, xmmword [eax + 8]
mov edi, eax
mov dword [esi + 0x1d8], 3
jmp 0x10001787
mov eax, dword [esi + 0x18c]
mov edi, dword [esi + 0xe4]
test eax, eax
je 0x10001722
push 1
push eax
push dword [esi + 0x190]
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x118]
test eax, eax
je 0x10001738
push 1
push eax
push edi
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x1d0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
pxor xmm0, xmm0
mov dword [esi + 0xc], eax
mov dword [esi + 0x1d8], 2
movdqa xmmword [esi + 0x50], xmm0
push 0x10
push edi
call dword [sym.imp.bcryptprimitives.dll_ProcessPrng]
mov eax, dword [esi + 0xc]
movdqa xmm0, xmmword [esi + 0x50]
mov edi, eax
mov dword [eax + 4], 0
mov dword [eax], 1
movdqu xmmword [eax + 8], xmm0
add edi, 8
movsd xmm3, qword [0x1004f418]
movsd xmm2, qword [0x1004f410]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
lea eax, [0x100406e9]
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [edi], edx
mov dword [edi + 4], ecx
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
lea ecx, [esi + 0x50]
movsd qword [esi + 0x170], xmm3
movsd qword [esi + 0x168], xmm2
movdqu xmmword [esi + 0x178], xmm0
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xebdc78bc
mov byte [esi + 0xb], 1
mov dword [esi + 0x1d8], 3
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100047c0
add esp, 8
mov edi, dword [eax]
movzx eax, byte [0x100da049]
push 1
push 4
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100038d8
xor edi, 0x2da87cbf
mov dword [esi + 0x18], 4
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 4
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
lea ecx, [esi + 0x168]
mov dword [eax], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
push ecx
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x1000188d
test eax, eax
je 0x1000188d
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004ab29]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x1628d821
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004470
add esp, 8
mov edi, dword [eax]
movzx ebx, word [eax + 4]
movzx eax, byte [0x100da049]
push 1
push 6
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100038ed
xor bh, 0xbf
xor edi, 0x3ad506a4
xor bl, 0x24
mov dword [esi + 0x18], 6
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 6
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
mov dword [eax], edi
mov byte [eax + 4], bl
mov byte [eax + 5], bh
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001956
test eax, eax
je 0x10001956
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004570d]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x53c323e5
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100044f0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 0xc], ecx
movzx ebx, word [eax + 8]
movzx edi, byte [eax + 0xa]
movzx eax, byte [0x100da049]
push 1
push 0xb
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003902
mov ecx, dword [esi + 0x10]
shl edi, 0x10
mov dword [esi + 0x18], 0xb
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0xb
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
or ebx, edi
xor ecx, 0x11fac204
mov dword [eax], ecx
mov ecx, dword [esi + 0xc]
xor ecx, 0x7ef6bdf9
mov dword [eax + 4], ecx
mov ecx, ebx
xor bh, 0xe2
xor bl, 0xfd
shr ecx, 0x10
mov byte [eax + 8], bl
mov byte [eax + 9], bh
xor cl, 0x70
mov byte [eax + 0xa], cl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001a4b
test eax, eax
je 0x10001a4b
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004a931]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x12592d0a
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100044c0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100da049]
push 1
push 0xc
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003917
mov ecx, dword [esi + 0xc]
xor edi, 0xcf042172
xor ebx, 0x31b3697c
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
xor ecx, 0x5eca7e7e
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001b22
test eax, eax
je 0x10001b22
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004cb0f]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x637d4e29
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004570
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100da049]
push 1
push 0xc
call fcn.1000c280
add esp, 8
test eax, eax
je 0x1000392c
mov ecx, dword [esi + 0xc]
xor edi, 0x29ef8adc
xor ebx, 0x4d19bc11
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
xor ecx, 0x6ddcc0d2
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001bf9
test eax, eax
je 0x10001bf9
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x10044910]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x55a425ae
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004380
add esp, 8
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [esi + 0x14], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x10], ecx
movzx eax, byte [eax + 0x10]
mov byte [esi + 0xc], al
movzx eax, byte [0x100da049]
push 1
push 0x11
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003941
xor ebx, 0x20e0c351
xor edi, 0x29d51d94
mov ecx, dword [esi + 0x14]
movzx edx, byte [esi + 0xc]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0x11
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
mov dword [eax], ebx
mov dword [eax + 4], edi
mov edi, dword [esi + 0x10]
xor ecx, 0xc69ccc47
xor dl, 0x21
xor edi, 0xbd947a6d
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov byte [eax + 0x10], dl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001cf3
test eax, eax
je 0x10001cf3
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x10048989]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x447ddecb
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004690
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100da049]
push 1
push 0xc
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003953
mov ecx, dword [esi + 0xc]
xor edi, 0x5dbc5966
xor ebx, 0x46ed5b66
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
xor ecx, 0x393d35a
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001dca
test eax, eax
je 0x10001dca
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1003fd98]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xa90a1b38
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004660
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov edi, dword [eax + 4]
movzx ebx, byte [eax + 8]
movzx eax, byte [0x100da049]
push 1
push 9
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003965
mov ecx, dword [esi + 0xc]
xor bl, 0x4a
xor edi, 0x106d8659
mov dword [esi + 0x18], 9
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 9
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
xor ecx, 0xf1a076c5
mov dword [eax], ecx
mov dword [eax + 4], edi
mov byte [eax + 8], bl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001e9f
test eax, eax
je 0x10001e9f
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x100408ad]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xe48cb2a6
mov byte [esi + 0xb], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004550
add esp, 8
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x14], ecx
mov ecx, dword [eax + 8]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
movzx ebx, word [eax + 0x10]
movzx eax, byte [0x100da049]
push 1
push 0x12
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003977
xor edi, 0x590b101b
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
xor bh, 0xed
xor bl, 0xda
mov dword [esi + 0x18], 0x12
mov dword [esi + 0x1c], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x20], 0x12
mov dword [esi + 0x58], 0
mov byte [esi + 0xb], 1
mov dword [eax], edi
mov edi, dword [esi + 0x10]
xor ecx, 0x5a05de7f
xor edx, 0xcc298086
xor edi, 0xd8839dda
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov byte [eax + 0x10], bl
mov byte [eax + 0x11], bh
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100058a0
add esp, 0x10
mov eax, dword [esi + 0xc0]
cmp eax, 0x80000000
je 0x10001f9e
test eax, eax
je 0x10001f9e
push 1
push eax
push dword [esi + 0xc4]
call fcn.1000c290
add esp, 0xc
mov edi, dword [esi + 0x168]
mov ebx, dword [esi + 0x16c]
mov eax, dword [esi + 0x174]
movdqa xmm0, xmmword [edi]
lea ecx, [ebx + 1]
test ebx, ebx
mov dword [esi + 0xbc], eax
je 0x10001ff5
mov edx, 0x18
mov eax, ecx
mov dword [esi + 0xc], 0
mul edx
jo 0x10001fec
add eax, 0xf
add ebx, 0x11
and eax, 0xfffffff0
add ebx, eax
jb 0x10001fec
cmp ebx, 0x7ffffff1
jb 0x100036f5
mov edx, edi
sub edx, eax
mov eax, dword [esi + 0xc]
jmp 0x10001ff7
xor eax, eax
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], ebx
mov ebx, dword [esi + 0xbc]
mov dword [esi + 0x150], edx
pmovmskb edx, xmm0
lea eax, [edi + 0x10]
add ecx, edi
mov dword [esi + 0x154], edi
not edx
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], ecx
mov word [esi + 0x160], dx
mov dword [esi + 0x164], ebx
jmp 0x1000205b
mov eax, dword [esi + 0xec]
test eax, eax
je 0x1000205b
push 1
push eax
push dword [esi + 0xe8]
call fcn.1000c290
add esp, 0xc
test ebx, ebx
je 0x1000351d
movzx ecx, word [esi + 0x160]
mov eax, dword [esi + 0x154]
test cx, cx
je 0x100020a0
lea edx, [ecx - 1]
dec ebx
and edx, ecx
test eax, eax
mov word [esi + 0x160], dx
mov dword [esi + 0x164], ebx
jne 0x100020ef
jmp 0x1000351d
mov edx, dword [esi + 0x158]
nop word cs:[eax + eax]
movdqa xmm0, xmmword [edx]
add eax, 0xfffffe80
add edx, 0x10
pmovmskb ecx, xmm0
cmp ecx, 0xffff
je 0x100020b0
mov dword [esi + 0x158], edx
mov edx, 0xfffffffe
dec ebx
mov dword [esi + 0x154], eax
sub edx, ecx
not ecx
mov edi, ecx
and edi, edx
mov word [esi + 0x160], di
mov dword [esi + 0x164], ebx
tzcnt ecx, ecx
neg ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*8 - 0x18]
cmp edx, 0x80000000
je 0x1000351d
mov edi, dword [eax + ecx*8 - 0xc]
mov dword [esi + 0xc], edx
mov dword [esi + 0xbc], ebx
lea edx, [eax + ecx*8]
mov ebx, dword [eax + ecx*8 - 0x14]
mov dword [esi + 0xec], edi
mov edi, dword [eax + ecx*8 - 8]
mov eax, dword [eax + ecx*8 - 4]
mov dword [esi + 0x14], eax
mov eax, dword [edx - 0x10]
mov dword [esi + 0xe8], edi
mov dword [esi + 0x1d8], 0xa
push eax
mov dword [esi + 0x10], ebx
push ebx
lea eax, [esi + 0x1a0]
push eax
call fcn.10017900
add esp, 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10002169
push 1
push eax
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x1a0]
mov ebx, dword [esi + 0xbc]
cmp eax, 0x80000000
je 0x10002040
cmp eax, 0x80000001
jne 0x10002290
mov eax, dword [esi + 0x1a4]
mov ecx, dword [esi + 0x1a8]
mov dword [esi + 0x1d8], 0x2a
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1ac]
push dword [esi + 0x14]
push dword [esi + 0xe8]
push eax
mov dword [esi + 0x10], ecx
push ecx
lea eax, [esi + 0x11c]
push eax
call fcn.1001bbc0
add esp, 0x14
mov eax, dword [esi + 0xec]
test eax, eax
je 0x100021e2
push 1
push eax
push dword [esi + 0xe8]
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x100021f7
push 1
push eax
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
lea eax, [esi + 0x11c]
mov dword [esi + 0x1d8], 0xb
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001d410
add esp, 0xc
mov eax, dword [esi + 0x50]
xor eax, 2
or eax, dword [esi + 0x54]
jne 0x100022ae
cmp byte [esi + 0x58], 3
jne 0x100023ab
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x29
mov dword [esi + 0x14], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10002271
push dword [ecx + 8]
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
jmp 0x100023ab
test eax, eax
je 0x10002040
push 1
push eax
push dword [esi + 0x1a4]
call fcn.1000c290
add esp, 0xc
jmp 0x10002040
mov ebx, dword [esi + 0x124]
mov eax, dword [esi + 0x120]
test ebx, ebx
je 0x100022e8
mov dword [esi + 0xc], eax
js 0x100038c7
movzx eax, byte [0x100da049]
push 1
push ebx
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100038c0
mov edi, eax
mov eax, dword [esi + 0xc]
jmp 0x100022ed
mov edi, 1
push ebx
push eax
push edi
call fcn.1003eb30
add esp, 0xc
movzx eax, byte [esi + 0x128]
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], ebx
mov byte [esi + 0xc0], 0
mov dword [esi + 0x1d8], 0xc
mov byte [esi + 0x5c], al
lea eax, [esi + 0x50]
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0xc0]
push eax
lea eax, [esi + 0x18]
push eax
call fcn.10013770
add esp, 0x10
mov eax, dword [esi + 0x50]
test eax, eax
je 0x10002352
push 1
push eax
push dword [esi + 0x54]
call fcn.1000c290
add esp, 0xc
cmp byte [esi + 0x18], 3
jne 0x100023a1
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x28
mov dword [esi + 0x14], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10002392
push dword [ecx + 8]
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
mov dword [esi + 0x1d8], 0xb
lea eax, [esi + 0x11c]
mov dword [esi + 0x1d8], 0xb
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001d410
add esp, 0xc
mov eax, dword [esi + 0x50]
xor eax, 2
or eax, dword [esi + 0x54]
jne 0x1000244b
cmp byte [esi + 0x58], 3
mov ebx, dword [esi + 0xbc]
jne 0x10002438
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x27
mov dword [esi + 0x14], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10002423
push dword [ecx + 8]
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
mov ebx, dword [esi + 0xbc]
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x1000344d
jmp 0x1000205b
movzx eax, byte [0x100da049]
push 4
push 0x18
call fcn.1000c280
add esp, 8
test eax, eax
mov dword [esi + 0xb8], eax
je 0x10003808
lea eax, [0x1004a486]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x55b8bf83
mov dword [esi + 0x1d8], 0x25
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100045a0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
movzx ebx, word [eax + 4]
movzx edi, byte [eax + 6]
movzx eax, byte [0x100da049]
push 1
push 7
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100037f7
mov ecx, dword [esi + 0xc]
shl edi, 0x10
mov dword [esi + 0xc], eax
or ebx, edi
xor ecx, 0x3b819321
mov dword [eax], ecx
mov ecx, ebx
xor bh, 0x4d
xor bl, 0xb3
shr ecx, 0x10
mov byte [eax + 4], bl
mov byte [eax + 5], bh
xor cl, 0x53
mov byte [eax + 6], cl
lea eax, [0x1004f18a]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x21e64a71
mov dword [esi + 0x1d8], 0x26
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100046e0
add esp, 8
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [0x100da049]
push 1
push 8
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100037e6
xor ebx, 0xf929d9d4
mov ecx, dword [esi + 0xc]
xor edi, 0xb298823b
mov dword [eax + 4], ebx
mov ebx, dword [esi + 0xb8]
mov dword [eax], edi
xor edi, edi
mov dword [ebx], 7
mov dword [ebx + 4], ecx
mov dword [ebx + 8], 7
mov dword [ebx + 0xc], 8
mov dword [ebx + 0x10], eax
lea eax, [ebx + 0x18]
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc8], 2
lea edx, [ebx + 0x10]
mov dword [ebx + 0x14], 8
mov dword [esi + 0xcc], eax
mov eax, 0xc
jmp 0x100025b5
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0xb8]
add eax, 0xfffffff4
add edx, 0xc
cmp edi, 0x18
je 0x10002829
lea ecx, [edi + 0xc]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], ecx
lea ecx, [ebx + edi + 0xc]
mov dword [esi + 0xc4], ecx
mov ecx, dword [ebx + edi]
cmp ecx, 0x80000000
je 0x1000281f
mov dword [esi + 0x40], eax
mov eax, dword [ebx + edi + 8]
mov edx, dword [ebx + edi + 4]
mov dword [esi + 0xf0], ecx
mov dword [esi + 0x1d8], 0x1c
mov dword [esi + 0xf8], eax
lea eax, [esi + 0xf0]
mov dword [esi + 0xf4], edx
push eax
lea eax, [esi + 0x18]
push eax
call fcn.1000d6e0
add esp, 8
lea eax, [esi + 0x64]
pxor xmm0, xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 7
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x1d8], 0x1d
movq qword [eax + 6], xmm0
movq qword [eax], xmm0
mov eax, dword [esi + 0x20]
mov byte [esi + 0x6c], 1
push eax
mov dword [esi + 0x14], ecx
push ecx
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.10013720
add esp, 0x10
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10002687
push 1
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
cmp byte [esi + 0x108], 4
jne 0x10003737
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x1d8], 0x1e
mov dword [esi + 0x12c], eax
lea eax, [esi + 0x11c]
push eax
call fcn.1001c720
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x4c], edx
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1000d6e0
add esp, 8
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x1d8], 0x20
push eax
mov dword [esi + 0x48], ecx
push ecx
push dword [esi + 0x4c]
push dword [esi + 0x14]
lea eax, [esi + 0x18]
push eax
call fcn.1001bbc0
add esp, 0x14
mov eax, dword [esi + 0x50]
test eax, eax
je 0x1000270e
push 1
push eax
push dword [esi + 0x48]
call fcn.1000c290
add esp, 0xc
lea eax, [esi + 0x64]
pxor xmm0, xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 7
mov dword [esi + 0x1d8], 0x1f
movq qword [eax + 6], xmm0
movq qword [eax], xmm0
lea eax, [esi + 0x18]
mov byte [esi + 0x6d], 1
mov word [esi + 0x6f], 0x101
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.10013720
add esp, 0x10
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10002784
push 1
push eax
push dword [esi + 0x1c]
call fcn.1000c290
add esp, 0xc
cmp byte [esi + 0x108], 4
jne 0x10003770
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x1d8], 0x21
mov dword [esi + 0x138], eax
lea eax, [esi + 0x138]
push eax
lea eax, [esi + 0x12c]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1000a040
add esp, 0xc
cmp dword [esi + 0x50], 0
mov ecx, dword [sym.imp.KERNEL32.dll_CloseHandle]
jne 0x10003701
mov eax, dword [esi + 0x138]
mov dword [esi + 0x1d8], 0x1e
push eax
call ecx
mov eax, dword [esi + 0x12c]
mov dword [esi + 0x1d8], 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x100025a0
push 1
push eax
push dword [esi + 0xf4]
call fcn.1000c290
add esp, 0xc
jmp 0x100025a0
cmp dword [esi + 0x10], 0x18
jne 0x10002eef
push 4
push 0x18
push ebx
call fcn.1000c290
add esp, 0xc
lea eax, [esi + 0x11c]
mov dword [esi + 0x1d8], 0xb
push eax
call fcn.1001c720
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
lea eax, [0x1004c727]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xdeb222c8
push dword [esi + 0x50]
push eax
call fcn.10004440
add esp, 8
mov ecx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, word [eax + 8]
mov edx, 0x2f92ba72
xor ecx, edx
xor al, 0x87
xor ah, 0x78
mov dword [esi + 0x50], ecx
mov ecx, 0x6344059c
xor edi, ecx
mov dword [esi + 0x54], edi
mov byte [esi + 0x58], al
mov byte [esi + 0x59], ah
push 0xa
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x10]
push dword [esi + 0xc]
lea eax, [esi + 0x138]
push eax
call fcn.1001bbc0
add esp, 0x14
lea eax, [esi + 0x50]
mov dword [esi + 0x1d8], 0xd
push eax
call fcn.10017a00
add esp, 4
cmp dword [esi + 0x50], 0x80000000
je 0x10003850
mov ecx, dword [esi + 0x140]
movq xmm0, qword [esi + 0x50]
movq xmm1, qword [esi + 0x58]
mov eax, dword [esi + 0x13c]
test ecx, ecx
movq qword [esi + 0x20], xmm1
movq qword [esi + 0x18], xmm0
mov dword [esi + 0xc], ecx
je 0x1000292c
js 0x1000388d
mov ebx, eax
movzx eax, byte [0x100da049]
push 1
push ecx
call fcn.1000c280
add esp, 8
test eax, eax
je 0x10003886
mov edi, eax
mov eax, ebx
jmp 0x10002931
mov edi, 1
mov ebx, dword [esi + 0xc]
push ebx
mov dword [esi + 0x14], eax
push eax
push edi
call fcn.1003eb30
add esp, 0xc
movzx eax, byte [esi + 0x144]
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], ebx
mov byte [esi + 0x47], 0
mov dword [esi + 0x1d8], 0xe
mov byte [esi + 0x4c], al
mov byte [esi + 0x5c], al
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10009f50
add esp, 0xc
cmp dword [esi + 0xc0], 0
je 0x100029db
cmp byte [esi + 0xc4], 3
jne 0x100029db
mov eax, dword [esi + 0xc8]
mov ecx, dword [eax]
mov dword [esi + 0x40], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x1a
mov dword [esi + 0x48], ecx
push ecx
mov dword [esi + 0x10], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100029cc
push dword [ecx + 8]
push eax
push dword [esi + 0x48]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x40]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004016b]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xf7ec188e
mov dword [esi + 0x1d8], 0xd
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004600
add esp, 8
mov ecx, dword [eax]
mov edx, 0x72239790
xor ecx, edx
movzx edx, byte [eax + 6]
movzx eax, word [eax + 4]
mov dword [esi + 0x18], ecx
xor al, 0xf8
xor ah, 0x68
xor dl, 0xe3
mov byte [esi + 0x1c], al
mov byte [esi + 0x1d], ah
mov byte [esi + 0x1e], dl
push 7
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e110
add esp, 0xc
lea eax, [0x1004c359]
mov dword [esi + 0xa4], 0x8000000
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0xf35be4ed
mov dword [esi + 0x1d8], 0xf
mov ecx, dword [esi + 0x18]
push ecx
push eax
call fcn.100042c0
add esp, 8
movzx eax, word [eax]
xor eax, 0x16ac
mov word [esi + 0x18], ax
push 2
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x1004b877]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x4185979d
push dword [esi + 0x18]
push eax
call fcn.100047f0
add esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, 0xbf9ea77a
mov edi, 0x54b8a82
xor ecx, edx
xor eax, edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], ecx
push 8
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x10049d91]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x19b62edd
push dword [esi + 0x18]
push eax
call fcn.100042f0
add esp, 8
mov ecx, dword [eax]
mov edx, 0x33621267
xor ecx, edx
movzx edx, byte [eax + 6]
movzx eax, word [eax + 4]
mov dword [esi + 0x18], ecx
xor al, 0xf0
xor ah, 0x94
xor dl, 0xf7
mov byte [esi + 0x1c], al
mov byte [esi + 0x1d], ah
mov byte [esi + 0x1e], dl
push 7
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x1004b6c0]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x198ccb42
push dword [esi + 0x18]
push eax
call fcn.10004330
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xe7
xor cl, 0x9d
xor ah, 0xe7
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x1a], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x18], ax
push 3
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x10049932]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x2d169d4b
push dword [esi + 0x18]
push eax
call fcn.10004360
add esp, 8
mov ecx, dword [eax]
movzx eax, word [eax + 4]
mov edx, 0xb60bc4c8
xor al, 0xa1
xor ecx, edx
xor ah, 0xd3
mov dword [esi + 0x18], ecx
mov byte [esi + 0x1c], al
mov byte [esi + 0x1d], ah
push 6
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x1004b3d4]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0xaa3e6ab9
push dword [esi + 0x18]
push eax
call fcn.100045d0
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xde
xor cl, 0x36
xor ah, 0xfe
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x1a], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x18], ax
push 3
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x1004bb91]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x41364574
push dword [esi + 0x18]
push eax
call fcn.100046b0
add esp, 8
movzx eax, byte [eax]
xor al, 0x3f
mov byte [esi + 0x18], al
push 1
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x10043d59]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x44c25894
push dword [esi + 0x18]
push eax
call fcn.100043e0
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0x57
xor cl, 0x52
xor ah, 0xd1
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x1a], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x18], ax
push 3
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x10042628]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x2fc8adcc
push dword [esi + 0x18]
push eax
call fcn.100043b0
add esp, 8
mov ecx, dword [eax]
mov edx, 0x1c961504
xor ecx, edx
mov edx, dword [eax + 4]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
movzx eax, word [eax + 0x10]
mov dword [esi + 0xc0], ecx
mov ecx, 0x18e9b9ff
xor edx, ecx
mov ecx, 0xd51f8c94
xor al, 0xcc
xor ah, 0xfb
mov dword [esi + 0xc4], edx
mov edx, 0xb52ec492
xor edi, ecx
xor ebx, edx
mov dword [esi + 0xc8], edi
mov dword [esi + 0xcc], ebx
mov byte [esi + 0xd0], al
mov byte [esi + 0xd1], ah
lea eax, [esi + 0xc0]
mov dword [esi + 0x1b0], eax
mov dword [esi + 0x1b4], 0x12
call fcn.1000c310
mov dword [esi + 0x19c], eax
lea ebx, [eax + 8]
mov dword [esi + 0x10], eax
mov ecx, dword [eax + 0x108]
cmp ecx, 0x3f
jae 0x10002da5
lea edi, [ecx + 2]
cmp ecx, 0x3d
mov dword [eax + 0x108], edi
mov edx, dword [eax + ecx*4 + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
mov dword [esi + 0x48], ecx
jae 0x10002e18
mov ebx, dword [esi + 0x48]
jmp 0x10002f7f
mov dword [esi + 0x40], ebx
jne 0x10002e94
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 0x10]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
mov ebx, dword [eax + 0x104]
mov dword [esi + 0xb8], ebx
jl 0x10002f26
cmp dword [eax + 0x150], 0
js 0x10002f26
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1d8], 0x19
call fcn.1000abf0
jmp 0x10002f38
cmp edi, 0x3f
mov dword [esi + 0x40], ebx
mov dword [esi + 0xb8], edx
jne 0x1000345b
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 0x10]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
mov ebx, dword [eax + 0x104]
mov dword [esi + 0x188], ebx
jl 0x100034ae
cmp dword [eax + 0x150], 0
js 0x100034ae
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1d8], 0x19
call fcn.1000abf0
jmp 0x100034c0
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 0x10]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
jl 0x10002f55
cmp dword [eax + 0x150], 0
js 0x10002f55
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1d8], 0x19
call fcn.1000abf0
jmp 0x10002f67
mov ecx, 0xaaaaaaab
mul ecx
mov ecx, dword [esi + 0xc]
mov edi, edx
shr edi, 3
jmp 0x10002f0a
add ecx, 0xc
dec edi
je 0x10002829
mov eax, dword [ecx - 4]
test eax, eax
je 0x10002f00
push 1
push eax
push dword [ecx]
mov dword [esi + 0xc], ecx
call fcn.1000c290
mov ecx, dword [esi + 0xc]
add esp, 0xc
jmp 0x10002f00
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1d8], 0x19
call fcn.1000aa90
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xb8]
mov edi, 1
mov dword [eax + 0x108], 1
mov ebx, dword [eax + 8]
jmp 0x10002f7f
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1d8], 0x19
call fcn.1000aa90
mov eax, dword [esi + 0x10]
mov edi, 2
mov dword [eax + 0x108], 2
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
lea ecx, [edi + 2]
mov dword [eax + 0x108], ecx
mov ecx, dword [eax + edi*4 + 8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esi + 0x1d8], 0x19
mov edi, ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0xfc], eax
lea eax, [esi + 0x1b0]
mov dword [esi + 0x18], 0x1004f444
mov dword [esi + 0x1c], 2
mov dword [esi + 0xf8], edi
mov dword [esi + 0xf0], edx
mov dword [esi + 0xf4], ebx
mov dword [esi + 0x28], 0
mov dword [esi + 0x108], eax
lea eax, [esi + 0xf0]
mov dword [esi + 0x10c], 0x10009640
mov dword [esi + 0x110], eax
lea eax, [esi + 0x108]
mov dword [esi + 0x114], 0x10037910
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 2
push ecx
lea eax, [esi + 0x12c]
push eax
call fcn.10035f10
add esp, 8
mov eax, dword [esi + 0x10]
dec dword [eax]
jne 0x10003034
dec dword [eax + 4]
jne 0x10003034
push 8
push 0x158
push eax
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x130]
mov dword [esi + 0x1d8], 0x10
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x134]
push eax
mov dword [esi + 0x40], ecx
push ecx
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10003079
push 1
push eax
push dword [esi + 0x40]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1004cc70]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0x7bf48aa3
mov dword [esi + 0x1d8], 0xf
mov ecx, dword [esi + 0x18]
push ecx
push eax
call fcn.10004740
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xca
xor cl, 0x39
xor ah, 0x8e
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x1a], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x18], ax
push 3
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
test ecx, ecx
je 0x1000310d
mov ebx, eax
movzx eax, byte [0x100da049]
push 1
push ecx
call fcn.1000c280
add esp, 8
test eax, eax
je 0x100038ae
mov edi, eax
mov eax, ebx
jmp 0x10003112
mov edi, 1
mov ebx, dword [esi + 0xc]
push ebx
push eax
push edi
call fcn.1003eb30
add esp, 0xc
movzx eax, byte [esi + 0x4c]
mov dword [esi + 0xf0], ebx
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], ebx
mov dword [esi + 0x1d8], 0x16
mov byte [esi + 0xfc], al
lea eax, [esi + 0xf0]
push eax
call fcn.1001c720
add esp, 4
push edx
push eax
lea eax, [esi + 0x18]
push eax
call fcn.1001c900
add esp, 0xc
cmp dword [esi + 0x18], 0
jne 0x10003819
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov byte [esi + 0xc0], 0x80
mov byte [esi + 0xcc], 0x80
mov dword [esi + 0x34], 0
mov dword [esi + 0x28], 0x20
mov byte [esi + 0x38], 3
mov dword [esi + 0x18], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 1
mov dword [esi + 0x110], 0
mov dword [esi + 0x1d8], 0x18
add ecx, eax
mov dword [esi + 0xd8], eax
lea eax, [esi + 0x108]
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x18]
mov dword [esi + 0xdc], ecx
mov dword [esi + 0x30], 0x1004f280
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100380c0
add esp, 8
test al, al
jne 0x1000382b
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0x1d8], 0x17
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x110]
push eax
mov dword [esi + 0x10], ecx
push ecx
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10003247
push 1
push eax
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x10003262
push 1
push eax
push dword [esi + 0xf4]
call fcn.1000c290
add esp, 0xc
lea eax, [0x1003fbb9]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0xac0fbe05
mov dword [esi + 0x1d8], 0xf
mov ecx, dword [esi + 0x18]
push ecx
push eax
call fcn.10004710
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xba
xor cl, 0x92
xor ah, 0xfd
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x1a], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x18], ax
push 3
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [0x100493b0]
lea ecx, [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], 0xfa113165
push dword [esi + 0x18]
push eax
call fcn.10004520
add esp, 8
mov ecx, dword [eax]
mov edx, 0x9f5cde80
xor ecx, edx
movzx edx, byte [eax + 6]
movzx eax, word [eax + 4]
mov dword [esi + 0x18], ecx
xor al, 6
xor ah, 0x44
xor dl, 0x17
mov byte [esi + 0x1c], al
mov byte [esi + 0x1d], ah
mov byte [esi + 0x1e], dl
push 7
lea eax, [esi + 0x18]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e1e0
add esp, 0xc
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x18]
push eax
call fcn.10021a30
add esp, 8
mov eax, dword [esi + 0x18]
cmp eax, 2
jne 0x10003390
cmp byte [esi + 0x1c], 3
jne 0x1000340f
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 0x11
mov dword [esi + 0x4c], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
je 0x1000337f
push dword [ecx + 8]
push eax
push dword [esi + 0x4c]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x10]
call fcn.1000c290
add esp, 0xc
jmp 0x1000340f
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x1d8], 0x15
mov dword [esi + 0x10], ecx
push eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
mov dword [esi + 0x1d8], 0x14
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0xc], 0
je 0x100033db
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x1d8], 0x13
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x20], 0
je 0x100033f5
mov eax, dword [esi + 0x24]
mov dword [esi + 0x1d8], 0x12
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x28], 0
je 0x1000340f
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x1d8], 0xf
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esi + 0x50]
mov dword [esi + 0x1d8], 0xd
call fcn.10001130
mov eax, dword [esi + 0x138]
test eax, eax
je 0x10003439
push 1
push eax
push dword [esi + 0x14]
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x11c]
mov ebx, dword [esi + 0xbc]
test eax, eax
je 0x1000205b
push 1
push eax
push dword [esi + 0x120]
jmp 0x10002053
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 0x10]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
jl 0x100034e7
cmp dword [eax + 0x150], 0
js 0x100034e7
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1d8], 0x19
call fcn.1000abf0
jmp 0x100034f9
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1d8], 0x19
call fcn.1000aa90
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xb8]
mov ebx, dword [esi + 0x48]
mov edi, dword [esi + 0x188]
lea ecx, [esi + 0x18]
mov dword [eax + 0x108], 1
mov eax, dword [eax + 8]
jmp 0x10002f9f
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1d8], 0x19
call fcn.1000aa90
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xb8]
mov ebx, dword [esi + 0x48]
lea ecx, [esi + 0x18]
mov dword [eax + 0x108], 2
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
jmp 0x10002f9f
lea eax, [esi + 0x148]
mov byte [esi + 0xb], 0
mov dword [esi + 0x1d8], 3
push eax
call fcn.10004a50
add esp, 4
lea eax, [0x1004b611]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xca1ab70a
mov byte [esi + 0xb], 0
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004410
add esp, 8
mov ecx, 0x399d1449
xor ecx, dword [eax]
mov byte [esi + 0xb], 0
mov dword [esi + 0xc0], ecx
push 4
lea eax, [esi + 0xc0]
push eax
lea eax, [esi + 0x18]
push eax
call fcn.10017900
add esp, 0xc
cmp dword [esi + 0x18], 0x80000001
jne 0x10003989
mov eax, dword [esi + 0x1c]
lea ecx, [esi + 0x50]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x14], eax
lea eax, [0x1003f656]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xcc9e6b46
mov dword [esi + 0x1d8], 4
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004630
add esp, 8
mov ecx, 0x82d12961
mov edx, 0x5856097f
mov edi, 0xb64d1da3
mov ebx, 0xaad79cbf
xor ecx, dword [eax]
xor edx, dword [eax + 4]
xor edi, dword [eax + 8]
xor ebx, dword [eax + 0xc]
movzx eax, byte [eax + 0x10]
not al
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], edx
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], ebx
lea ecx, [esi + 0x1b8]
mov byte [esi + 0x60], al
push 0x11
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x14]
push dword [esi + 0xc]
push ecx
call fcn.1001bbc0
add esp, 0x14
lea eax, [esi + 0x1b8]
mov dword [esi + 0x1d8], 5
push eax
call fcn.1001c720
add esp, 4
push 0
push 1
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.10013430
add esp, 0x14
mov eax, dword [esi + 0x1b8]
test eax, eax
je 0x1000366e
push 1
push eax
push dword [esi + 0x1bc]
call fcn.1000c290
add esp, 0xc
cmp byte [esi + 0x50], 3
mov edi, dword [esi + 0xe4]
mov eax, dword [esi + 0xc]
jne 0x100036cf
mov eax, dword [esi + 0x54]
mov ecx, dword [eax]
mov dword [esi + 0x4c], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1d8], 6
mov dword [esi + 0x40], ecx
push ecx
mov dword [esi + 0x14], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100036b7
push dword [ecx + 8]
push eax
push dword [esi + 0x40]
call fcn.1000c290
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x4c]
call fcn.1000c290
add esp, 0xc
mov edi, dword [esi + 0xe4]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x100036e2
push 1
push ecx
push eax
call fcn.1000c290
add esp, 0xc
mov eax, dword [esi + 0x18c]
test eax, eax
jne 0x10001711
jmp 0x10001722
mov dword [esi + 0xc], 0x10
jmp 0x10001fec
movq xmm0, qword [esi + 0x54]
mov dword [esi + 0x1d8], 0x22
movq qword [esi + 0x18], xmm0
push 0x1004f484
push 0x1004f38c
lea eax, [esi + 0x18]
push eax
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
movq xmm0, qword [esi + 0x108]
mov dword [esi + 0x1d8], 0x24
movq qword [esi + 0x50], xmm0
push 0x1004f464
push 0x1004f38c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
movq xmm0, qword [esi + 0x108]
mov dword [esi + 0x1d8], 0x23
movq qword [esi + 0x50], xmm0
push 0x1004f474
push 0x1004f38c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
movq xmm0, qword [esi + 0x18]
movq xmm1, qword [esi + 0x20]
mov dword [esi + 0x1d8], 0
movq qword [esi + 0x58], xmm1
movq qword [esi + 0x50], xmm0
push 0x1004f3ec
push 0x1004f39c
push edi
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
push 8
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
push 7
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
push 0x18
push 4
call fcn.1004da50
add esp, 8
jmp 0x100039c4
push 0x1004f454
call fcn.1004db30
add esp, 4
jmp 0x100039c4
push 0x1004f340
push 0x1004f350
lea eax, [esi + 0x12c]
push eax
push 0x37
push str.a_Display_implementation_returned_an_error_unexpectedlyC:Userslucak.rustup_toolchains_nightly_x86_64_pc_windows_msvclib_rustlib_src_rustlibrary_alloc_src_string.rs
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
movq xmm0, qword [esi + 0x54]
mov dword [esi + 0x1d8], 0x1b
movq qword [esi + 0x18], xmm0
push 0x1004f430
push 0x1004f38c
lea eax, [esi + 0x18]
push eax
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
jmp 0x100039c4
mov eax, 1
jmp 0x1000388f
xor eax, eax
mov byte [esi + 0x47], 1
mov dword [esi + 0x1d8], 0xe
push dword [esi + 0xc]
push eax
call fcn.1004da30
add esp, 8
jmp 0x100039c4
push dword [esi + 0xc]
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov eax, 1
jmp 0x100038c9
xor eax, eax
push ebx
push eax
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 4
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 6
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0xb
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0xc
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0xc
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0x11
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0xc
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 9
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
mov byte [esi + 0xb], 1
push 0x12
push 1
call fcn.1004da30
add esp, 8
jmp 0x100039c4
movq xmm0, qword [esi + 0x18]
movq xmm1, qword [esi + 0x20]
mov dword [esi + 0x1d8], 7
movq qword [esi + 0x58], xmm1
movq qword [esi + 0x50], xmm0
push 0x1004f420
push 0x1004f39c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004dab0
add esp, 0x14
ud2