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, 0x1d0
mov esi, esp
mov dword [esi + 0x1b8], ebp
mov dword [esi + 0x1bc], esp
mov dword [esi + 0x1c8], 0xffffffff
mov dword [esi + 0x1c4], 0x10003e50
lea eax, [esi + 0x1c0]
mov ecx, dword fs:[0]
mov dword [esi + 0x1c0], ecx
mov dword fs:[0], eax
call fcn.10017e00
mov edi, eax
mov eax, dword [eax]
or eax, dword [edi + 4]
je 0x10001584
movdqu xmm0, xmmword [edi + 8]
mov eax, edi
add eax, 8
jmp 0x100015b3
xorps xmm0, xmm0
lea eax, [esi + 0x50]
movaps xmmword [esi + 0x50], xmm0
push 0x10
push eax
call dword [sym.imp.bcryptprimitives.dll_ProcessPrng]
movdqa xmm0, xmmword [esi + 0x50]
mov eax, edi
mov dword [edi + 4], 0
mov dword [edi], 1
add eax, 8
movdqu xmmword [edi + 8], xmm0
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
movsd xmm3, qword [0x1004f3f8]
movsd xmm2, qword [0x1004f3f0]
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
lea eax, [0x10049ed3]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
movsd qword [esi + 0x170], xmm3
movsd qword [esi + 0x168], xmm2
movdqu xmmword [esi + 0x178], xmm0
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x8a7399df
mov byte [esi + 3], 1
mov dword [esi + 0x1c8], 0
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004270
add esp, 8
mov edi, dword [eax]
movzx eax, byte [0x100eb049]
push 1
push 4
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003574
xor edi, 0x80416883
mov dword [esi + 0x10], 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 4
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
lea ecx, [esi + 0x10]
lea edx, [esi + 0x168]
mov dword [eax], edi
lea edi, [esi + 0x50]
lea eax, [esi + 0xc8]
push edi
push ecx
push edx
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x100016b6
test eax, eax
je 0x100016b6
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004840a]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x8a7dde98
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004070
add esp, 8
mov edi, dword [eax]
movzx ebx, word [eax + 4]
movzx eax, byte [0x100eb049]
push 1
push 6
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003589
xor bh, 0xc3
xor edi, 0xcdedba75
xor bl, 0xa4
mov dword [esi + 0x10], 6
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 6
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
mov dword [eax], edi
mov byte [eax + 4], bl
mov byte [eax + 5], bh
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x1000177f
test eax, eax
je 0x1000177f
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004d8e4]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x9e53eac1
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004200
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 8], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
movzx ebx, word [eax + 8]
movzx edi, byte [eax + 0xa]
movzx eax, byte [0x100eb049]
push 1
push 0xb
call fcn.1000c740
add esp, 8
test eax, eax
je 0x1000359e
mov ecx, dword [esi + 8]
shl edi, 0x10
mov dword [esi + 0x10], 0xb
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0xb
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
or ebx, edi
xor ecx, 0x2b6551c1
mov dword [eax], ecx
mov ecx, dword [esi + 4]
xor ecx, 0xaafb1c8f
mov dword [eax + 4], ecx
mov ecx, ebx
xor bh, 0x9f
xor bl, 0x7a
shr ecx, 0x10
mov byte [eax + 8], bl
mov byte [eax + 9], bh
xor cl, 0x39
mov byte [eax + 0xa], cl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001874
test eax, eax
je 0x10001874
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x100406d1]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x9e8f043a
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100040e0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100eb049]
push 1
push 0xc
call fcn.1000c740
add esp, 8
test eax, eax
je 0x100035b3
mov ecx, dword [esi + 4]
xor edi, 0xa550c97c
xor ebx, 0xd5bc9575
mov dword [esi + 0x10], 0xc
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
xor ecx, 0x7c12dc1d
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x1000194b
test eax, eax
je 0x1000194b
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004d689]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x9f306029
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100042d0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100eb049]
push 1
push 0xc
call fcn.1000c740
add esp, 8
test eax, eax
je 0x100035c8
mov ecx, dword [esi + 4]
xor edi, 0x6e8c7fc
xor ebx, 0xfc130614
mov dword [esi + 0x10], 0xc
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
xor ecx, 0xd5316884
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001a22
test eax, eax
je 0x10001a22
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004a8bd]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xec34b9cf
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10003e80
add esp, 8
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 8], ecx
movzx eax, byte [eax + 0x10]
mov byte [esi + 4], al
movzx eax, byte [0x100eb049]
push 1
push 0x11
call fcn.1000c740
add esp, 8
test eax, eax
je 0x100035dd
xor ebx, 0x57532a00
xor edi, 0x70755229
mov ecx, dword [esi + 0xc]
movzx edx, byte [esi + 4]
mov dword [esi + 0x10], 0x11
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
mov dword [eax], ebx
mov dword [eax + 4], edi
mov edi, dword [esi + 8]
xor ecx, 0x9c33f911
xor dl, 0x90
xor edi, 0x8124bbb9
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov byte [eax + 0x10], dl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001b1c
test eax, eax
je 0x10001b1c
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [fcn.1004308b]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x4bbc1722
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004220
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov ebx, dword [eax + 4]
mov edi, dword [eax + 8]
movzx eax, byte [0x100eb049]
push 1
push 0xc
call fcn.1000c740
add esp, 8
test eax, eax
je 0x100035ef
mov ecx, dword [esi + 4]
xor edi, 0xda1759b6
xor ebx, 0xb12d7866
mov dword [esi + 0x10], 0xc
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0xc
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
xor ecx, 0xb7d7073e
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001bf3
test eax, eax
je 0x10001bf3
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004111f]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x69386372
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10003eb0
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov edi, dword [eax + 4]
movzx ebx, byte [eax + 8]
movzx eax, byte [0x100eb049]
push 1
push 9
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003601
mov ecx, dword [esi + 4]
xor bl, 0xdf
xor edi, 0xdf5bc3a8
mov dword [esi + 0x10], 9
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 9
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
xor ecx, 0xafabfe94
mov dword [eax], ecx
mov dword [eax + 4], edi
mov byte [eax + 8], bl
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001cc8
test eax, eax
je 0x10001cc8
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004867e]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xc04eda35
mov byte [esi + 3], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10003e60
add esp, 8
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0xc], ecx
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 4], ecx
movzx ebx, word [eax + 0x10]
movzx eax, byte [0x100eb049]
push 1
push 0x12
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003613
xor edi, 0x14a96809
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
xor bh, 0xd0
xor bl, 0xa6
mov dword [esi + 0x10], 0x12
mov dword [esi + 0x14], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x18], 0x12
mov dword [esi + 0x58], 0
mov byte [esi + 3], 1
mov dword [eax], edi
mov edi, dword [esi + 8]
xor ecx, 0xca2cf7d
xor edx, 0x25655b62
xor edi, 0xfce5febb
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 + 0x10]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10008a90
add esp, 0x10
mov eax, dword [esi + 0xc8]
cmp eax, 0x80000000
je 0x10001dc7
test eax, eax
je 0x10001dc7
push 1
push eax
push dword [esi + 0xcc]
call fcn.1000c750
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 + 0xc4], eax
je 0x10001e1e
mov edx, 0x18
mov eax, ecx
mov dword [esi + 4], 0
mul edx
jo 0x10001e15
add eax, 0xf
add ebx, 0x11
and eax, 0xfffffff0
add ebx, eax
jb 0x10001e15
cmp ebx, 0x7ffffff1
jb 0x100033df
mov edx, edi
sub edx, eax
mov eax, dword [esi + 4]
jmp 0x10001e20
xor eax, eax
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], ebx
mov dword [esi + 0x150], edx
lea eax, [edi + 0x10]
mov dword [esi + 0x154], edi
add ecx, edi
mov edi, dword [esi + 0xc4]
pmovmskb ebx, xmm0
not ebx
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], ecx
mov word [esi + 0x160], bx
mov dword [esi + 0x164], edi
jmp 0x10001e8b
mov eax, dword [esi + 0xec]
test eax, eax
je 0x10001e8b
push 1
push eax
push dword [esi + 0xe8]
call fcn.1000c750
add esp, 0xc
test edi, edi
je 0x10003212
mov eax, dword [esi + 0x154]
test bx, bx
je 0x10001ec0
lea ecx, [ebx - 1]
dec edi
and ecx, ebx
test eax, eax
mov word [esi + 0x160], cx
mov dword [esi + 0x164], edi
jne 0x10001f0f
jmp 0x10003212
mov ecx, dword [esi + 0x158]
nop word cs:[eax + eax]
movdqa xmm0, xmmword [ecx]
add eax, 0xfffffe80
add ecx, 0x10
pmovmskb ebx, xmm0
cmp ebx, 0xffff
je 0x10001ed0
mov edx, 0xfffffffe
mov dword [esi + 0x158], ecx
dec edi
mov dword [esi + 0x154], eax
sub edx, ebx
not ebx
mov ecx, ebx
and ecx, edx
mov word [esi + 0x160], cx
mov dword [esi + 0x164], edi
mov edx, ebx
mov ebx, ecx
tzcnt edx, edx
neg edx
lea ecx, [edx + edx*2]
mov edx, dword [eax + ecx*8 - 0x18]
cmp edx, 0x80000000
je 0x10003212
mov dword [esi + 0xc4], edi
mov edi, dword [eax + ecx*8 - 0xc]
mov dword [esi + 4], edx
mov dword [esi + 0x118], 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 + 0xc], eax
mov eax, dword [edx - 0x10]
mov dword [esi + 0xe8], edi
mov dword [esi + 0x1c8], 7
push eax
mov dword [esi + 8], ebx
push ebx
lea eax, [esi + 0x190]
push eax
call fcn.10017e20
add esp, 0xc
mov eax, dword [esi + 4]
test eax, eax
je 0x10001f93
push 1
push eax
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 0x190]
mov edi, dword [esi + 0xc4]
mov ebx, dword [esi + 0x118]
cmp eax, 0x80000000
je 0x10001e70
cmp eax, 0x80000001
jne 0x100020c0
mov eax, dword [esi + 0x194]
mov ecx, dword [esi + 0x198]
mov dword [esi + 0x1c8], 0x26
mov dword [esi + 4], eax
mov eax, dword [esi + 0x19c]
push dword [esi + 0xc]
push dword [esi + 0xe8]
push eax
mov dword [esi + 8], ecx
push ecx
lea eax, [esi + 0x11c]
push eax
call fcn.1001c0e0
add esp, 0x14
mov eax, dword [esi + 0xec]
test eax, eax
je 0x10002012
push 1
push eax
push dword [esi + 0xe8]
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 4]
test eax, eax
je 0x10002027
push 1
push eax
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
lea eax, [esi + 0x11c]
mov dword [esi + 0x1c8], 8
push eax
call fcn.1001cc40
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001d930
add esp, 0xc
mov eax, dword [esi + 0x50]
xor eax, 2
or eax, dword [esi + 0x54]
jne 0x100020de
cmp byte [esi + 0x58], 3
jne 0x100021db
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 0x25
mov dword [esi + 0xc], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100020a1
push dword [ecx + 8]
push eax
push dword [esi + 0xc]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
jmp 0x100021db
test eax, eax
je 0x10001e70
push 1
push eax
push dword [esi + 0x194]
call fcn.1000c750
add esp, 0xc
jmp 0x10001e70
mov ebx, dword [esi + 0x124]
mov eax, dword [esi + 0x120]
test ebx, ebx
je 0x10002118
mov dword [esi + 4], eax
js 0x10003563
movzx eax, byte [0x100eb049]
push 1
push ebx
call fcn.1000c740
add esp, 8
test eax, eax
je 0x1000355c
mov edi, eax
mov eax, dword [esi + 4]
jmp 0x1000211d
mov edi, 1
push ebx
push eax
push edi
call fcn.1003efd0
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 + 0xc8], 0
mov dword [esi + 0x1c8], 9
mov byte [esi + 0x5c], al
lea eax, [esi + 0x50]
push eax
call fcn.1001cc40
add esp, 4
push edx
push eax
lea eax, [esi + 0xc8]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.10013ca0
add esp, 0x10
mov eax, dword [esi + 0x50]
test eax, eax
je 0x10002182
push 1
push eax
push dword [esi + 0x54]
call fcn.1000c750
add esp, 0xc
cmp byte [esi + 0x10], 3
jne 0x100021d1
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 0x24
mov dword [esi + 0xc], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100021c2
push dword [ecx + 8]
push eax
push dword [esi + 0xc]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
mov dword [esi + 0x1c8], 8
lea eax, [esi + 0x11c]
mov dword [esi + 0x1c8], 8
push eax
call fcn.1001cc40
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001d930
add esp, 0xc
mov eax, dword [esi + 0x50]
xor eax, 2
or eax, dword [esi + 0x54]
jne 0x10002287
cmp byte [esi + 0x58], 3
mov edi, dword [esi + 0xc4]
mov ebx, dword [esi + 0x118]
jne 0x10002274
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 0x23
mov dword [esi + 0xc], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10002259
push dword [ecx + 8]
push eax
push dword [esi + 0xc]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
mov edi, dword [esi + 0xc4]
mov ebx, dword [esi + 0x118]
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x1000314b
jmp 0x10001e8b
movzx eax, byte [0x100eb049]
push 4
push 0xc
call fcn.1000c740
add esp, 8
test eax, eax
mov dword [esi + 0x4c], eax
je 0x100034a4
lea eax, [0x1004839c]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xd32898d5
mov dword [esi + 0x1c8], 0x22
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004120
add esp, 8
mov ecx, dword [eax]
mov dword [esi + 4], ecx
movzx ebx, word [eax + 4]
movzx edi, byte [eax + 6]
movzx eax, byte [0x100eb049]
push 1
push 7
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003493
mov ecx, dword [esi + 4]
shl edi, 0x10
or ebx, edi
xor edi, edi
xor ecx, 0x1c9356de
mov dword [eax], ecx
mov ecx, ebx
xor bh, 0x12
xor bl, 0xba
mov byte [eax + 4], bl
mov byte [eax + 5], bh
mov ebx, dword [esi + 0x4c]
shr ecx, 0x10
xor cl, 0x5d
mov byte [eax + 6], cl
mov dword [ebx], 7
mov dword [ebx + 4], eax
lea eax, [ebx + 0xc]
mov dword [esi + 0xc8], ebx
mov dword [esi + 0xd0], 1
lea ecx, [ebx + 0x10]
mov dword [ebx + 8], 7
mov dword [esi + 0xd4], eax
xor eax, eax
jmp 0x10002375
mov edi, dword [esi + 0x38]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
add edi, 0xc
add ecx, 0xc
add eax, 0xfffffff4
cmp edi, 0xc
je 0x10002622
lea edx, [ebx + edi + 0xc]
mov dword [esi + 0xcc], edx
mov edx, dword [ebx + edi]
cmp edx, 0x80000000
je 0x100025dc
mov dword [esi + 0x48], eax
mov eax, dword [ebx + edi + 8]
mov dword [esi + 0xf0], edx
mov dword [esi + 4], ecx
mov dword [esi + 0x38], edi
mov dword [esi + 0x1c8], 0x19
mov dword [esi + 0xf8], eax
mov eax, dword [ebx + edi + 4]
mov dword [esi + 0xf4], eax
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.1000e8f0
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 + 0x14]
mov dword [esi + 0x1c8], 0x1a
movq qword [eax + 6], xmm0
movq qword [eax], xmm0
mov eax, dword [esi + 0x18]
mov byte [esi + 0x6c], 1
push eax
mov dword [esi + 8], ecx
push ecx
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.10013c50
add esp, 0x10
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10002444
push 1
push eax
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
cmp byte [esi + 0x108], 4
jne 0x100033eb
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x1c8], 0x1b
mov dword [esi + 0x12c], eax
lea eax, [esi + 0x11c]
push eax
call fcn.1001cc40
add esp, 4
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1000e8f0
add esp, 8
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x1c8], 0x1d
push eax
mov dword [esi + 0x40], ecx
push ecx
push dword [esi + 0xc]
push dword [esi + 8]
lea eax, [esi + 0x10]
push eax
call fcn.1001c0e0
add esp, 0x14
mov eax, dword [esi + 0x50]
test eax, eax
je 0x100024cb
push 1
push eax
push dword [esi + 0x40]
call fcn.1000c750
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 + 0x1c8], 0x1c
movq qword [eax + 6], xmm0
movq qword [eax], xmm0
lea eax, [esi + 0x10]
mov byte [esi + 0x6d], 1
mov word [esi + 0x6f], 0x101
push eax
call fcn.1001cc40
add esp, 4
push edx
push eax
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.10013c50
add esp, 0x10
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10002541
push 1
push eax
push dword [esi + 0x14]
call fcn.1000c750
add esp, 0xc
cmp byte [esi + 0x108], 4
jne 0x1000345a
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x1c8], 0x1e
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.10009620
add esp, 0xc
cmp dword [esi + 0x50], 0
mov ecx, dword [sym.imp.KERNEL32.dll_CloseHandle]
jne 0x10003424
mov eax, dword [esi + 0x138]
mov dword [esi + 0x1c8], 0x1b
push eax
call ecx
mov eax, dword [esi + 0x12c]
mov dword [esi + 0x1c8], 0x19
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x10002360
push 1
push eax
push dword [esi + 0xf4]
call fcn.1000c750
add esp, 0xc
jmp 0x10002360
test edi, edi
je 0x10002622
mov edi, ecx
mov ecx, 0xaaaaaaab
mul ecx
mov ecx, edi
mov edi, edx
shr edi, 3
jmp 0x10002606
add ecx, 0xc
dec edi
je 0x10002622
mov eax, dword [ecx - 4]
test eax, eax
je 0x10002600
push 1
push eax
push dword [ecx]
mov dword [esi + 4], ecx
call fcn.1000c750
mov ecx, dword [esi + 4]
add esp, 0xc
jmp 0x10002600
push 4
push 0xc
push ebx
call fcn.1000c750
add esp, 0xc
lea eax, [esi + 0x11c]
mov dword [esi + 0x1c8], 8
push eax
call fcn.1001cc40
add esp, 4
mov dword [esi + 4], eax
mov dword [esi + 8], edx
lea eax, [0x1004c95a]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xf35f121a
push dword [esi + 0x50]
push eax
call fcn.100040b0
add esp, 8
mov ecx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, word [eax + 8]
mov edx, 0x1669a8fe
xor ecx, edx
xor al, 0xc7
xor ah, 0x86
mov dword [esi + 0x50], ecx
mov ecx, 0x4db951e5
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 + 8]
push dword [esi + 4]
lea eax, [esi + 0x138]
push eax
call fcn.1001c0e0
add esp, 0x14
lea eax, [esi + 0x50]
mov dword [esi + 0x1c8], 0xa
push eax
call fcn.10017f20
add esp, 4
cmp dword [esi + 0x50], 0x80000000
je 0x100034ec
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 + 0x18], xmm1
movq qword [esi + 0x10], xmm0
mov dword [esi + 4], ecx
je 0x10002725
js 0x10003529
mov ebx, eax
movzx eax, byte [0x100eb049]
push 1
push ecx
call fcn.1000c740
add esp, 8
test eax, eax
je 0x10003522
mov edi, eax
mov eax, ebx
jmp 0x1000272a
mov edi, 1
mov ebx, dword [esi + 4]
push ebx
mov dword [esi + 0xc], eax
push eax
push edi
call fcn.1003efd0
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 + 0x1c8], 0xb
mov byte [esi + 0x48], al
mov byte [esi + 0x5c], al
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.10009530
add esp, 0xc
cmp dword [esi + 0xc8], 0
je 0x100027d4
cmp byte [esi + 0xcc], 3
jne 0x100027d4
mov eax, dword [esi + 0xd0]
mov ecx, dword [eax]
mov dword [esi + 0x38], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 0x17
mov dword [esi + 0x40], ecx
push ecx
mov dword [esi + 8], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100027c5
push dword [ecx + 8]
push eax
push dword [esi + 0x40]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x38]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004142a]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xfef6165c
mov dword [esi + 0x1c8], 0xa
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004010
add esp, 8
mov ecx, dword [eax]
mov edx, 0xe3762d10
xor ecx, edx
movzx edx, byte [eax + 6]
movzx eax, word [eax + 4]
mov dword [esi + 0x10], ecx
xor al, 0x3a
xor ah, 0xf1
xor dl, 0x53
mov byte [esi + 0x14], al
mov byte [esi + 0x15], ah
mov byte [esi + 0x16], dl
push 7
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e630
add esp, 0xc
lea eax, [0x10044e41]
mov dword [esi + 0xa4], 0x8000000
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x2cdb7ed7
mov dword [esi + 0x1c8], 0xc
mov ecx, dword [esi + 0x10]
push ecx
push eax
call fcn.100041a0
add esp, 8
movzx eax, word [eax]
xor eax, 0x9ef7
mov word [esi + 0x10], ax
push 2
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x1003ff7a]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x3930e25c
push dword [esi + 0x10]
push eax
call fcn.10004040
add esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, 0x24253c5f
mov edi, 0xf67d2c88
xor ecx, edx
xor eax, edi
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], ecx
push 8
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x1004e7f6]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x568dc30b
push dword [esi + 0x10]
push eax
call fcn.100042a0
add esp, 8
mov ecx, dword [eax]
mov edx, 0x3c85d4b4
xor ecx, edx
movzx edx, byte [eax + 6]
movzx eax, word [eax + 4]
mov dword [esi + 0x10], ecx
xor al, 0x1d
xor ah, 0xe0
xor dl, 0x71
mov byte [esi + 0x14], al
mov byte [esi + 0x15], ah
mov byte [esi + 0x16], dl
push 7
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x10040c96]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0xac48a67e
push dword [esi + 0x10]
push eax
call fcn.10003ff0
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0x93
xor cl, 0xab
xor ah, 0x10
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x12], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x10], ax
push 3
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x10049bf4]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x47289566
push dword [esi + 0x10]
push eax
call fcn.10004250
add esp, 8
mov ecx, dword [eax]
movzx eax, word [eax + 4]
mov edx, 0x5f70f735
xor al, 0x3e
xor ecx, edx
xor ah, 0x88
mov dword [esi + 0x10], ecx
mov byte [esi + 0x14], al
mov byte [esi + 0x15], ah
push 6
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x10041b8d]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0xcd8ed65
push dword [esi + 0x10]
push eax
call fcn.10003fc0
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0x7d
xor cl, 0x7c
xor ah, 0xef
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x12], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x10], ax
push 3
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x1004b3dc]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x86004385
push dword [esi + 0x10]
push eax
call fcn.10003f10
add esp, 8
movzx eax, byte [eax]
xor al, 0x74
mov byte [esi + 0x10], al
push 1
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x10048036]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x78d7f484
push dword [esi + 0x10]
push eax
call fcn.10004100
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xe8
xor cl, 0x1e
xor ah, 0x93
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x12], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x10], ax
push 3
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
lea eax, [0x1004cf3f]
lea ecx, [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0xb197244d
push dword [esi + 0x10]
push eax
call fcn.10004140
add esp, 8
mov ecx, dword [eax]
mov edx, 0x148c1e30
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 + 0xc8], ecx
mov ecx, 0x7e00e735
xor edx, ecx
mov ecx, 0x3e28be86
xor al, 0x73
xor ah, 0xbe
mov dword [esi + 0xcc], edx
mov edx, 0x16f5253a
xor edi, ecx
xor ebx, edx
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], ebx
mov byte [esi + 0xd8], al
mov byte [esi + 0xd9], ah
lea eax, [esi + 0xc8]
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x1a4], 0x12
call fcn.1000c7d0
mov dword [esi + 0x18c], eax
lea edx, [eax + 8]
mov dword [esi + 8], eax
mov ecx, dword [eax + 0x108]
mov dword [esi + 0x40], edx
cmp ecx, 0x3f
jae 0x10002c1a
lea ebx, [ecx + 2]
cmp ecx, 0x3d
lea edi, [esi + 0x10]
mov dword [eax + 0x108], ebx
mov edx, dword [eax + ecx*4 + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
mov dword [esi + 0x38], ecx
jb 0x10002d2e
cmp ebx, 0x3f
mov dword [esi + 0x4c], edx
jne 0x10003159
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 8]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
mov ebx, dword [eax + 0x104]
mov dword [esi + 0x188], ebx
jl 0x100031ac
cmp dword [eax + 0x150], 0
js 0x100031ac
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1c8], 0x16
call fcn.1000a320
jmp 0x100031be
jne 0x10002c7c
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 8]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
mov ebx, dword [eax + 0x104]
mov dword [esi + 0x4c], ebx
jl 0x10002ccf
cmp dword [eax + 0x150], 0
js 0x10002ccf
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1c8], 0x16
call fcn.1000a320
jmp 0x10002ce1
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 8]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
jl 0x10002cfe
cmp dword [eax + 0x150], 0
js 0x10002cfe
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1c8], 0x16
call fcn.1000a320
jmp 0x10002d10
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1c8], 0x16
call fcn.1000a1c0
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x4c]
mov ebx, 1
lea edi, [esi + 0x10]
mov dword [eax + 0x108], 1
mov ecx, dword [eax + 8]
jmp 0x10002d2b
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1c8], 0x16
call fcn.1000a1c0
mov eax, dword [esi + 8]
mov ebx, 2
lea edi, [esi + 0x10]
mov dword [eax + 0x108], 2
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x38], ecx
lea ecx, [ebx + 2]
mov dword [eax + 0x108], ecx
mov ecx, dword [eax + ebx*4 + 8]
mov eax, dword [eax + ebx*4 + 0xc]
mov dword [esi + 0x1c8], 0x16
mov ebx, ecx
mov ecx, dword [esi + 0x38]
mov dword [esi + 0xfc], eax
lea eax, [esi + 0x1a0]
mov dword [esi + 0x10], 0x1004f438
mov dword [esi + 0x14], 2
mov dword [esi + 0xf8], ebx
mov dword [esi + 0xf0], edx
mov dword [esi + 0xf4], ecx
mov dword [esi + 0x20], 0
mov dword [esi + 0x108], eax
lea eax, [esi + 0xf0]
mov dword [esi + 0x10c], 0x10008640
mov dword [esi + 0x110], eax
lea eax, [esi + 0x108]
mov dword [esi + 0x114], 0x10037db0
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], 2
push edi
lea eax, [esi + 0x12c]
push eax
call fcn.100363b0
add esp, 8
mov eax, dword [esi + 8]
dec dword [eax]
jne 0x10002de3
dec dword [eax + 4]
jne 0x10002de3
push 8
push 0x158
push eax
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x130]
mov dword [esi + 0x1c8], 0xd
mov dword [esi + 8], eax
mov eax, dword [esi + 0x134]
push eax
mov dword [esi + 0x38], ecx
push ecx
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
mov eax, dword [esi + 8]
lea edi, [esi + 0x10]
test eax, eax
je 0x10002e2b
push 1
push eax
push dword [esi + 0x38]
call fcn.1000c750
add esp, 0xc
lea eax, [0x1004d280]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0xb1214f5d
mov dword [esi + 0x1c8], 0xc
mov ecx, dword [esi + 0x10]
push ecx
push eax
call fcn.10003f40
add esp, 8
movzx ecx, byte [eax + 2]
movzx eax, word [eax]
xor al, 0xbc
xor cl, 0x2e
xor ah, 0x92
movzx edi, ah
movzx edx, cl
movzx eax, al
mov byte [esi + 0x12], cl
shl edx, 0x10
shl edi, 8
or edi, edx
or eax, edi
mov word [esi + 0x10], ax
push 3
lea eax, [esi + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
test ecx, ecx
je 0x10002ebc
mov ebx, eax
movzx eax, byte [0x100eb049]
push 1
push ecx
call fcn.1000c740
add esp, 8
test eax, eax
je 0x1000354a
mov edi, eax
mov eax, ebx
jmp 0x10002ec1
mov edi, 1
mov ebx, dword [esi + 4]
push ebx
push eax
push edi
call fcn.1003efd0
add esp, 0xc
movzx eax, byte [esi + 0x48]
mov dword [esi + 0xf0], ebx
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], ebx
mov dword [esi + 0x1c8], 0x13
mov byte [esi + 0xfc], al
lea eax, [esi + 0xf0]
push eax
call fcn.1001cc40
add esp, 4
push edx
push eax
lea eax, [esi + 0x10]
push eax
call fcn.1001ce20
add esp, 0xc
cmp dword [esi + 0x10], 0
lea edx, [esi + 0x10]
jne 0x100034b5
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov byte [esi + 0xc8], 0x80
mov byte [esi + 0xd4], 0x80
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 1
mov dword [esi + 0x2c], 0
mov dword [esi + 0x20], 0x20
mov byte [esi + 0x30], 3
mov dword [esi + 0x10], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c8], 0x15
add ecx, eax
mov dword [esi + 0xe0], eax
lea eax, [esi + 0x108]
mov dword [esi + 0x24], eax
mov dword [esi + 0xe4], ecx
mov dword [esi + 0x28], 0x1004f280
push edx
lea eax, [esi + 0xc8]
push eax
call fcn.10038560
add esp, 8
test al, al
jne 0x100034c7
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0x1c8], 0x14
mov dword [esi + 4], eax
mov eax, dword [esi + 0x110]
push eax
mov dword [esi + 8], ecx
push ecx
lea eax, [esi + 0x50]
push eax
call fcn.1001e700
add esp, 0xc
mov eax, dword [esi + 4]
lea edi, [esi + 0x10]
test eax, eax
je 0x10002ff9
push 1
push eax
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x10003014
push 1
push eax
push dword [esi + 0xf4]
call fcn.1000c750
add esp, 0xc
lea eax, [esi + 0x50]
mov dword [esi + 0x1c8], 0xc
push eax
push edi
call fcn.10021f40
add esp, 8
mov eax, dword [esi + 0x10]
cmp eax, 2
jne 0x10003088
cmp byte [esi + 0x14], 3
jne 0x10003107
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 0xe
mov dword [esi + 0x48], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10003077
push dword [ecx + 8]
push eax
push dword [esi + 0x48]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 8]
call fcn.1000c750
add esp, 0xc
jmp 0x10003107
mov dword [esi + 4], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x1c8], 0x12
mov dword [esi + 8], ecx
push eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
mov dword [esi + 0x1c8], 0x11
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 4], 0
je 0x100030d3
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1c8], 0x10
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x18], 0
je 0x100030ed
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x1c8], 0xf
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x20], 0
je 0x10003107
mov eax, dword [esi + 0x24]
mov dword [esi + 0x1c8], 0xc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esi + 0x50]
mov dword [esi + 0x1c8], 0xa
call fcn.10001130
mov eax, dword [esi + 0x138]
test eax, eax
je 0x10003131
push 1
push eax
push dword [esi + 0xc]
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 0x11c]
mov edi, dword [esi + 0xc4]
mov ebx, dword [esi + 0x118]
test eax, eax
je 0x10001e8b
push 1
push eax
push dword [esi + 0x120]
jmp 0x10001e83
mov edi, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov ecx, eax
mov eax, dword [esi + 8]
add ecx, 0x110
cmp edx, 1
mov ebx, edi
sbb ebx, 0
jl 0x100031e2
cmp dword [eax + 0x150], 0
js 0x100031e2
add edx, 0xffffff00
mov dword [eax + 0x148], edx
mov edx, dword [esi + 0x40]
adc edi, 0xffffffff
mov dword [eax + 0x14c], edi
mov dword [esi + 0x1c8], 0x16
call fcn.1000a320
jmp 0x100031f4
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1c8], 0x16
call fcn.1000a1c0
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x188]
lea edi, [esi + 0x10]
mov dword [eax + 0x108], 1
mov eax, dword [eax + 8]
jmp 0x10002d4e
mov edx, dword [esi + 0x40]
mov dword [esi + 0x1c8], 0x16
call fcn.1000a1c0
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x4c]
lea edi, [esi + 0x10]
mov dword [eax + 0x108], 2
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
jmp 0x10002d4b
lea eax, [esi + 0x148]
mov byte [esi + 3], 0
mov dword [esi + 0x1c8], 0
push eax
call fcn.100055e0
add esp, 4
lea eax, [0x10044178]
lea ecx, [esi + 0x50]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0x6e9ff4f7
mov byte [esi + 3], 0
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.10004170
add esp, 8
mov ecx, 0x15c97556
xor ecx, dword [eax]
mov byte [esi + 3], 0
mov dword [esi + 0xc8], ecx
push 4
lea eax, [esi + 0xc8]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.10017e20
add esp, 0xc
cmp dword [esi + 0x10], 0x80000001
jne 0x10003625
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0x50]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
lea eax, [0x10042fbe]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [esi + 0x50], 0xc6cbcb0d
mov dword [esi + 0x1c8], 1
mov ecx, dword [esi + 0x50]
push ecx
push eax
call fcn.100041d0
add esp, 8
mov ecx, 0x1d82941b
mov edx, 0xaf3ba0fb
mov edi, 0xbfb10049
mov ebx, 0x68b59d35
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, 0x3c
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], edx
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], ebx
lea ecx, [esi + 0x1a8]
mov byte [esi + 0x60], al
push 0x11
lea eax, [esi + 0x50]
push eax
push dword [esi + 0xc]
push dword [esi + 4]
push ecx
call fcn.1001c0e0
add esp, 0x14
lea eax, [esi + 0x1a8]
mov dword [esi + 0x1c8], 2
push eax
call fcn.1001cc40
add esp, 4
push 0
push 1
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.10013960
add esp, 0x14
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x10003363
push 1
push eax
push dword [esi + 0x1ac]
call fcn.1000c750
add esp, 0xc
cmp byte [esi + 0x50], 3
mov eax, dword [esi + 4]
jne 0x100033b8
mov eax, dword [esi + 0x54]
mov ecx, dword [eax]
mov dword [esi + 0x48], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1c8], 3
mov dword [esi + 0x38], 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 0x100033a6
push dword [ecx + 8]
push eax
push dword [esi + 0x38]
call fcn.1000c750
add esp, 0xc
push 4
push 0xc
push dword [esi + 0x48]
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x100033cb
push 1
push ecx
push eax
call fcn.1000c750
add esp, 0xc
mov eax, dword [esi + 0x1c0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 4], 0x10
jmp 0x10001e15
movq xmm0, qword [esi + 0x108]
mov dword [esi + 0x1c8], 0x21
movq qword [esi + 0x50], xmm0
push 0x1004f458
push 0x1004f38c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004df40
add esp, 0x14
jmp 0x10003660
movq xmm0, qword [esi + 0x54]
mov dword [esi + 0x1c8], 0x1f
movq qword [esi + 0x10], xmm0
push 0x1004f478
push 0x1004f38c
lea eax, [esi + 0x10]
push eax
push 0x2b
push 0x1004f360
call fcn.1004df40
add esp, 0x14
jmp 0x10003660
movq xmm0, qword [esi + 0x108]
mov dword [esi + 0x1c8], 0x20
movq qword [esi + 0x50], xmm0
push 0x1004f468
push 0x1004f38c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004df40
add esp, 0x14
jmp 0x10003660
push 7
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
push 0xc
push 4
call fcn.1004dee0
add esp, 8
jmp 0x10003660
push 0x1004f448
call fcn.1004dfc0
add esp, 4
jmp 0x10003660
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.1004df40
add esp, 0x14
jmp 0x10003660
movq xmm0, qword [esi + 0x54]
mov dword [esi + 0x1c8], 0x18
movq qword [esi + 0x10], xmm0
push 0x1004f424
push 0x1004f38c
lea eax, [esi + 0x10]
push eax
push 0x2b
push 0x1004f360
call fcn.1004df40
add esp, 0x14
jmp 0x10003660
mov eax, 1
jmp 0x1000352b
xor eax, eax
mov byte [esi + 0x47], 1
mov dword [esi + 0x1c8], 0xb
push dword [esi + 4]
push eax
call fcn.1004dec0
add esp, 8
jmp 0x10003660
push dword [esi + 4]
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov eax, 1
jmp 0x10003565
xor eax, eax
push ebx
push eax
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 4
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 6
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0xb
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0xc
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0xc
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0x11
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0xc
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 9
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
mov byte [esi + 3], 1
push 0x12
push 1
call fcn.1004dec0
add esp, 8
jmp 0x10003660
movq xmm0, qword [esi + 0x10]
movq xmm1, qword [esi + 0x18]
mov dword [esi + 0x1c8], 4
movq qword [esi + 0x58], xmm1
movq qword [esi + 0x50], xmm0
push 0x1004f414
push 0x1004f39c
lea eax, [esi + 0x50]
push eax
push 0x2b
push 0x1004f360
call fcn.1004df40
add esp, 0x14
ud2