Function at 0x53f1a0
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b5fcc
mov eax, dword fs:[0]
push eax
mov eax, 0x10c8
call fcn.005a80c0
mov eax, dword [0x5fa040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1054], ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x10ac], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1068], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x108c], edi
mov dword [ebp - 0x10c8], eax
mov dword [ebp - 0x1098], esi
mov dword [esi], 8
mov dword [ebp - 0x10a4], 0
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x1090], eax
mov dword [ebp - 0x10cc], eax
mov byte [ebp - 4], 1
mov cl, byte [edi + 0x69]
mov byte [ebp - 0x1081], 1
mov byte [ebp - 0x1075], al
mov byte [ebp - 0x1047], al
test cl, cl
jne 0x53f26d
cmp byte [edi + 0x68], cl
je 0x53f26d
mov al, byte [edi]
shr al, 3
test al, 1
je 0x53f26d
cmp byte [edi + 0x74], cl
jne 0x53f26d
mov byte [ebp - 0x1045], 1
mov byte [ebp - 0x1081], cl
jmp 0x53f274
mov byte [ebp - 0x1045], 0
movzx eax, word [edi + 2]
mov edx, 2
mov word [ebp - 0x1074], dx
xor edx, edx
mov dword [ebp - 0x109c], eax
mov byte [ebp - 0x1072], 3
mov word [ebp - 0x1070], dx
cmp eax, 0x63
jne 0x53f2d6
test cl, cl
lea ecx, [edi + 0x50]
jne 0x53f2a9
lea ecx, [edi + 0x30]
lea eax, [ebp - 0x1074]
push eax
call fcn.0053ccd0
test al, al
je 0x53f2d6
test byte [edi], 1
je 0x53f2f3
cmp word [ebp - 0x1074], 1
mov byte [ebp - 0x1075], 1
sete byte [ebp - 0x1081]
jmp 0x53f305
test byte [edi], 1
je 0x53f305
mov al, byte [edi]
and al, 0x41
cmp al, 0x41
jne 0x53f305
lea eax, [ebp - 0x1c]
lea ecx, [edi + 0x50]
push eax
call fcn.0053cd30
test al, al
jne 0x53f2fe
mov dword [esi], 1
jmp 0x541613
mov byte [ebp - 0x1047], 1
push 0x20
call fcn.00587dd8
mov esi, eax
add esp, 4
mov dword [ebp - 0x105c], esi
mov dword [ebp - 0x10d0], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.COutStreamWithCRC.0
push esi
mov dword [esi + 8], 0
call dword [0x5cb774]
mov byte [ebp - 4], 6
test ebx, ebx
je 0x53f346
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x53f353
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov al, byte [ebp - 0x1081]
mov dword [esi + 8], ebx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x1c], al
mov dword [esi + 0x18], 0xffffffff
mov dword [ebp - 0x10a8], 0
push 0x28
mov byte [ebp - 4], 7
call fcn.00587dd8
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1088], ebx
mov dword [ebp - 0x10d4], ebx
mov dword [ebx + 4], 0
mov dword [ebx], vtable.CLimitedSequentialInStream.0
push ebx
mov dword [ebx + 8], 0
call dword [0x5cb568]
cmp byte [ebp - 0x1075], 0
mov byte [ebp - 4], 8
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x1058], eax
mov dword [ebp - 0x104c], ecx
je 0x53f40a
test ecx, ecx
ja 0x53f3f8
jb 0x53f3df
cmp eax, 0xa
jae 0x53f3f8
mov byte [ebp - 4], 9
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x541613
add eax, 0xfffffff6
mov dword [ebp - 0x1058], eax
adc ecx, 0xffffffff
mov dword [ebp - 0x104c], ecx
mov ecx, dword [ebp - 0x10ac]
lea eax, [ebp - 0x10a8]
push eax
push 1
push edi
call fcn.0054b4f0
mov edi, eax
test edi, edi
je 0x53f454
mov byte [ebp - 4], 0xe
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x10a8]
test eax, eax
je 0x53f443
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x10
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, edi
jmp 0x541615
mov edi, dword [ebp - 0x10a8]
test edi, edi
jne 0x53f483
mov ecx, dword [ebp - 0x1098]
mov dword [ecx], 4
mov byte [ebp - 4], 0x13
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x15
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x541613
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x53f496
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
xor esi, esi
mov dword [ebx + 8], edi
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x104c]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x1098]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov byte [ebx + 0x20], 0
mov dword [eax], 2
mov dword [ebp - 0x10a0], esi
mov dword [ebp - 0x10ac], esi
mov eax, dword [ebp - 0x108c]
mov byte [ebp - 4], 0x18
test byte [eax], 1
je 0x53fa98
cmp byte [ebp - 0x1075], 0
je 0x53f5ce
movzx eax, word [ebp - 0x1070]
mov dword [ebp - 0x109c], eax
mov eax, dword [ebp - 0x1054]
cmp dword [eax + 8], esi
jne 0x53f552
push 0x40
call fcn.00587dd8
mov esi, eax
add esp, 4
mov dword [ebp - 0x1058], esi
mov ecx, esi
mov byte [ebp - 4], 0x19
call fcn.0053a860
mov eax, dword [ebp - 0x1054]
mov dword [esi], vtable.NCrypto::NWzAes::CDecoder.0
mov dword [esi + 4], vtable.NCrypto::NWzAes::CDecoder.1.0
mov byte [ebp - 4], 0x18
mov dword [eax + 8], esi
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1054]
mov esi, dword [eax + 8]
mov dword [ebp - 0x10a0], esi
test esi, esi
je 0x53f56b
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1054]
movzx ecx, byte [ebp - 0x1072]
mov edx, dword [eax + 8]
mov dword [ebp - 0x10ac], esi
lea eax, [ecx - 1]
cmp eax, 2
ja 0x53f58b
mov dword [edx + 0xc], ecx
jmp 0x53f6e9
mov eax, dword [ebp - 0x1098]
mov dword [eax], 1
mov byte [ebp - 4], 0x1a
test esi, esi
je 0x53f5a5
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x1b
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x1c
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x1d
push edx
mov eax, dword [edx]
call dword [eax + 8]
jmp 0x541613
cmp byte [ebp - 0x1047], 0
je 0x53f691
mov eax, dword [ebp - 0x1054]
cmp dword [eax + 4], 0
jne 0x53f68c
push 0x58
call fcn.00587dd8
mov esi, eax
mov dword [ebp - 0x104c], esi
mov dword [esi + 8], 0
mov dword [esi], vtable.NCrypto::NZipStrong::CDecoder.0
mov dword [esi + 4], vtable.NCrypto::NZipStrong::CDecoder.1.0
mov dword [esi + 0x10], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
push 0x38
mov byte [ebp - 4], 0x22
call fcn.00587dd8
add esp, 8
mov dword [ebp - 0x1058], eax
push 0
mov ecx, eax
mov byte [ebp - 4], 0x23
call fcn.0057da40
mov ecx, eax
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x1058], ecx
mov dword [esi + 0xc], ecx
test ecx, ecx
je 0x53f65d
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x53f66a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x1054]
mov byte [ebp - 4], 0x18
push esi
mov dword [eax + 4], esi
mov eax, dword [esi]
call dword [eax + 4]
mov eax, dword [ebp - 0x1054]
mov esi, dword [eax + 4]
jmp 0x53f6d3
mov esi, dword [ebp - 0x1054]
cmp dword [esi], 0
jne 0x53f6d1
push 0x30
call fcn.00587dd8
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1058], ecx
mov dword [ecx + 8], 0
mov dword [ecx + 4], vtable.NCrypto::NZip::CCipher.1.0
mov dword [ecx], vtable.NCrypto::NZip::CDecoder.1.0
mov dword [ecx + 4], vtable.NCrypto::NZip::CDecoder.0
mov dword [esi], ecx
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov esi, dword [esi]
mov dword [ebp - 0x10a0], esi
test esi, esi
je 0x53f6e3
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov dword [ebp - 0x10ac], esi
mov dword [ebp - 0x106c], 0
lea ecx, [ebp - 0x106c]
mov byte [ebp - 4], 0x25
mov eax, dword [esi]
push ecx
push 0x5c1f14
push esi
call dword [eax]
mov dword [ebp - 0x1058], eax
mov byte [ebp - 4], 0x24
test eax, eax
je 0x53f763
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x106c]
test eax, eax
je 0x53f72a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x27
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x28
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x29
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x2a
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
jmp 0x541615
mov eax, dword [ebp - 0x106c]
test eax, eax
jne 0x53f7a5
mov byte [ebp - 4], 0x2e
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x2f
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x30
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x31
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, 0x80004005
jmp 0x541615
mov ecx, dword [ebp - 0x1054]
add ecx, 0x10
mov dword [ebp - 0x1058], ecx
cmp dword [ecx], 0
jne 0x53f7d6
mov edx, dword [ebp - 0x1068]
push ecx
push 0x5c1f94
push edx
mov eax, dword [edx]
call dword [eax]
mov eax, dword [ebp - 0x106c]
mov ecx, dword [ebp - 0x1058]
mov ecx, dword [ecx]
test ecx, ecx
je 0x53fb5c
mov dword [ebp - 0x1060], 0
mov byte [ebp - 4], 0x34
lea edx, [ebp - 0x1060]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
mov dword [ebp - 0x1058], eax
test eax, eax
je 0x53f895
mov eax, dword [ebp - 0x1060]
test eax, eax
je 0x53f841
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x1060]
call fcn.0058ad30
add esp, 0xc
push dword [ebp - 0x1060]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov dword [ebp - 0x1060], eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x106c]
test eax, eax
je 0x53f85c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x36
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x37
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x38
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x39
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
jmp 0x541615
push 4
call fcn.0058813f
xor edx, edx
mov dword [ebp - 0x20], eax
add esp, 4
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 3
mov byte [eax], dl
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x1060]
mov dword [ebp - 0x104c], ecx
test ecx, ecx
je 0x53f958
xor eax, eax
mov dword [ebp - 0x1058], eax
cmp word [ecx], ax
je 0x53f8e3
inc eax
cmp word [ecx + eax*2], 0
jne 0x53f8d5
mov dword [ebp - 0x1058], eax
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov ebx, eax
mov eax, dword [ebp - 0x1058]
mov dword [ebp - 0x10c0], eax
mov dword [ebp - 0x10bc], eax
mov dword [ebp - 0x10c4], ebx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x104c]
push ebx
call fcn.0058aed0
add esp, 0x10
lea eax, [ebp - 0x1092]
mov byte [ebp - 4], 0x3d
push eax
push ecx
push 0
lea edx, [ebp - 0x10c4]
lea ecx, [ebp - 0x20]
call fcn.0046e6f0
push ebx
call fcn.00588148
mov edx, dword [ebp - 0x1c]
add esp, 0x10
mov ebx, dword [ebp - 0x1088]
mov eax, dword [ebp - 0x106c]
push edx
push dword [ebp - 0x20]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ecx, dword [ebp - 0x20]
test eax, eax
je 0x53fa25
mov eax, dword [ebp - 0x1098]
mov dword [eax], 9
test ecx, ecx
je 0x53f996
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0
push ecx
call fcn.0058ad30
mov ecx, dword [ebp - 0x20]
add esp, 0xc
push ecx
call fcn.00588148
mov eax, dword [ebp - 0x1060]
add esp, 4
test eax, eax
je 0x53f9d7
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x1060]
call fcn.0058ad30
add esp, 0xc
push dword [ebp - 0x1060]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov dword [ebp - 0x1060], eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x106c]
test eax, eax
je 0x53f9f2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x3f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x40
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x41
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x42
push edx
mov eax, dword [edx]
call dword [eax + 8]
jmp 0x541613
test ecx, ecx
je 0x53fa3c
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0
push ecx
call fcn.0058ad30
mov ecx, dword [ebp - 0x20]
add esp, 0xc
push ecx
call fcn.00588148
mov eax, dword [ebp - 0x1060]
add esp, 4
test eax, eax
je 0x53fa7d
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x1060]
call fcn.0058ad30
add esp, 0xc
push dword [ebp - 0x1060]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov dword [ebp - 0x1060], eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0x4c
mov eax, dword [ebp - 0x106c]
test eax, eax
je 0x53fa98
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1054]
xor ecx, ecx
mov edx, dword [eax + 0x18]
test edx, edx
je 0x53face
mov edi, dword [eax + 0x14]
mov esi, dword [ebp - 0x109c]
mov eax, dword [edi + ecx*4]
cmp dword [eax], esi
je 0x53fabc
inc ecx
cmp ecx, edx
jb 0x53fab0
mov esi, dword [ebp - 0x10a0]
mov edi, dword [ebp - 0x10a8]
mov eax, dword [ebp - 0x1054]
cmp ecx, dword [eax + 0x18]
jne 0x53fea9
mov dword [ebp - 0x1070], 0
mov eax, dword [ebp - 0x109c]
mov byte [ebp - 4], 0x4d
mov dword [ebp - 0x1074], eax
test eax, eax
jne 0x53fba9
push 0x28
call fcn.00587dd8
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1068], ebx
mov dword [ebx + 0x14], 0
mov dword [ebx], vtable.NCompress::CCopyCoder.1.0
mov dword [ebx + 4], vtable.NCompress::CCopyCoder.3.0
mov dword [ebx + 8], vtable.NCompress::CCopyCoder.2.0
mov dword [ebx + 0xc], vtable.NCompress::CCopyCoder.4.0
mov dword [ebx + 0x10], vtable.NCompress::CCopyCoder.0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
push ebx
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
call dword [0x5ca750]
jmp 0x53fe31
mov ecx, dword [ebp - 0x1098]
mov dword [ecx], 9
mov byte [ebp - 4], 0x45
test eax, eax
je 0x53fb76
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x46
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x47
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x48
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x49
push edx
mov eax, dword [edx]
call dword [eax + 8]
jmp 0x541613
cmp eax, 1
jne 0x53fbea
push 0x8020
call fcn.00587dd8
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1058], ebx
mov dword [ebx + 0xc], 0
push ebx
mov dword [ebx], vtable.NCompress::NShrink::CDecoder.1.0
mov dword [ebx + 4], vtable.NCompress::NShrink::CDecoder.0
mov dword [ebx + 8], vtable.NCompress::NShrink::CDecoder.2.0
call dword [0x5d1d08]
jmp 0x53fe31
cmp eax, 6
jne 0x53fc8d
push 0x510
call fcn.00587dd8
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1058], ebx
mov dword [ebx + 0x10], 0
mov dword [ebx], vtable.NCompress::NImplode::NDecoder::CCoder.0
mov dword [ebx + 4], vtable.NCompress::NImplode::NDecoder::CCoder.1.0
mov dword [ebx + 8], vtable.NCompress::NImplode::NDecoder::CCoder.2.0
mov dword [ebx + 0xc], vtable.NCompress::NImplode::NDecoder::CCoder.3.0
mov word [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov byte [ebx + 0x64], 0
mov dword [ebx + 0x68], 0
jmp 0x53fe2b
cmp eax, 0xe
jne 0x53fcf7
push 0x14
call fcn.00587dd8
mov ebx, eax
mov dword [ebp - 0x1058], ebx
mov byte [ebp - 4], 0x4e
mov dword [ebx + 0xc], 0
push 0xc8
mov dword [ebx], vtable.NArchive::NZip::CLzmaDecoder.1.0
mov dword [ebx + 4], vtable.NArchive::NZip::CLzmaDecoder.2.0
mov dword [ebx + 8], vtable.NArchive::NZip::CLzmaDecoder.0
call fcn.00587dd8
add esp, 8
mov dword [ebp - 0x104c], eax
mov ecx, eax
call fcn.0056a5a0
mov ecx, eax
mov dword [ebx + 0x10], ecx
push ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1054]
mov byte [ebp - 4], 0x4d
mov dword [eax + 0x20], ebx
jmp 0x53fe2b
cmp eax, 0x5f
jne 0x53fd78
push 0x80
call fcn.00587dd8
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1058], ebx
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 1
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x28], 0x40000000
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov byte [ebx + 0x34], 0
push ebx
mov dword [ebx], vtable.NCompress::NXz::CComDecoder.2.0
mov dword [ebx + 4], vtable.NCompress::NXz::CComDecoder.0
mov dword [ebx + 8], vtable.NCompress::NXz::CComDecoder.1.0
mov dword [ebx + 0xc], vtable.NCompress::NXz::CComDecoder.4.0
mov dword [ebx + 0x10], vtable.NCompress::NXz::CComDecoder.3.0
mov byte [ebx + 0x78], 0
call dword [0x5d1c88]
jmp 0x53fe31
cmp eax, 0x62
jne 0x53fde4
push 0x1d10
call fcn.00587dd8
mov dword [ebp - 0x1068], eax
add esp, 4
mov dword [ebp - 0x1058], eax
mov dword [eax + 0xc], 0
lea ebx, [eax + 0x18]
mov dword [eax], vtable.NCompress::NPpmdZip::CDecoder.1.0
lea ecx, [eax + 0x44]
mov dword [eax + 4], vtable.NCompress::NPpmdZip::CDecoder.0
mov dword [eax + 8], vtable.NCompress::NPpmdZip::CDecoder.2.0
mov byte [eax + 0x10], 1
mov dword [ebx + 0xc], 0
mov dword [ebx], 0x553570
mov dword [eax + 0x40], 0
call fcn.00461260
mov eax, dword [ebp - 0x1068]
mov dword [eax + 0x98], ebx
mov ebx, eax
jmp 0x53fe2b
cmp eax, 0x5d
jne 0x53fe05
push 0xf8
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x1058], eax
mov ecx, eax
call fcn.00448f80
jmp 0x53fe25
cmp eax, 0x63
jne 0x53ff4b
push 0x70
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x1058], eax
mov ecx, eax
call fcn.004aaa00
mov ebx, eax
test ebx, ebx
je 0x53fe31
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov dword [ebp - 0x1070], ebx
mov ecx, dword [ebp - 0x1054]
add ecx, 0x14
call fcn.00439780
push 8
call fcn.00587dd8
mov ecx, dword [ebp - 0x1074]
add esp, 4
mov dword [ebp - 0x1058], eax
mov dword [eax], ecx
mov byte [ebp - 4], 0x64
mov dword [eax + 4], ebx
test ebx, ebx
je 0x53fe6e
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov edx, dword [ebp - 0x1054]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0x104c], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x14]
mov edx, dword [ebp - 0x1058]
mov dword [eax + ecx*4], edx
mov byte [ebp - 4], 0x65
test ebx, ebx
je 0x53fea3
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [ebp - 0x104c]
mov eax, dword [ebp - 0x1054]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x1068], 0
mov eax, dword [eax + ecx*4]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x107c], ebx
lea ecx, [ebp - 0x1068]
mov byte [ebp - 4], 0x66
mov eax, dword [ebx]
push ecx
push 0x5c1f44
push ebx
call dword [eax]
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x54007f
push dword [ebp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
je 0x540073
mov byte [ebp - 4], 0x67
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x53ff0c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x68
test esi, esi
je 0x53ff1a
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1088]
mov byte [ebp - 4], 0x69
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x6a
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x6b
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, ebx
jmp 0x541615
cmp eax, 0xc
jne 0x53ff59
mov eax, 0x40202
xor edx, edx
jmp 0x53ffaf
cmp eax, 0xff
jbe 0x53ffa3
mov eax, dword [ebp - 0x1098]
mov dword [eax], 1
mov byte [ebp - 4], 0x50
test esi, esi
je 0x53ff7a
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x51
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x52
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x53
push edx
mov eax, dword [edx]
call dword [eax + 8]
jmp 0x541613
movzx eax, al
cdq
add eax, 0x40100
adc edx, 0
push edx
push eax
lea edx, [ebp - 0x1070]
xor cl, cl
call fcn.00553090
add esp, 8
mov dword [ebp - 0x1058], eax
test eax, eax
je 0x54001c
mov byte [ebp - 4], 0x56
mov ecx, dword [ebp - 0x1070]
test ecx, ecx
je 0x53ffdf
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x57
test esi, esi
je 0x53ffed
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x58
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x59
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x5a
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
jmp 0x541615
mov ebx, dword [ebp - 0x1070]
test ebx, ebx
jne 0x53fe37
mov eax, dword [ebp - 0x1098]
mov dword [eax], 1
mov byte [ebp - 4], 0x5e
test esi, esi
je 0x540044
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1088]
mov byte [ebp - 4], 0x5f
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x60
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x61
push edx
mov eax, dword [edx]
call dword [eax + 8]
jmp 0x541613
mov eax, dword [ebp - 0x1068]
mov ebx, dword [ebp - 0x107c]
mov byte [ebp - 4], 0x6e
test eax, eax
je 0x54008d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1068], 0
lea ecx, [ebp - 0x1068]
mov byte [ebp - 4], 0x6f
mov eax, dword [ebx]
push ecx
push 0x5c1f24
push ebx
call dword [eax]
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x540127
push dword [ebp + 0x24]
mov ecx, dword [eax]
push dword [ebp + 0x20]
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
je 0x54011b
mov byte [ebp - 4], 0x70
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x5400dc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x71
test esi, esi
je 0x5400ea
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1088]
mov byte [ebp - 4], 0x72
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x73
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x74
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, ebx
jmp 0x541615
mov eax, dword [ebp - 0x1068]
mov ebx, dword [ebp - 0x107c]
mov byte [ebp - 4], 0x77
test eax, eax
je 0x540135
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1068], 0
lea ecx, [ebp - 0x1068]
mov byte [ebp - 4], 0x78
mov eax, dword [ebx]
push ecx
push 0x5c1eb4
push ebx
call dword [eax]
mov eax, dword [ebp - 0x1068]
mov ebx, dword [ebp - 0x108c]
test eax, eax
je 0x5401e2
mov cl, byte [ebx]
lea edx, [ebp - 0x1083]
push 1
mov byte [ebp - 0x1083], cl
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x1058], eax
test eax, eax
je 0x5401dc
mov byte [ebp - 4], 0x79
mov eax, dword [ebp - 0x1068]
test eax, eax
je 0x540199
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x7a
test esi, esi
je 0x5401a7
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1088]
mov byte [ebp - 4], 0x7b
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x7c
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x7d
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1058]
jmp 0x541615
mov eax, dword [ebp - 0x1068]
mov byte [ebp - 4], 0x80
test eax, eax
je 0x5401f0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x18
movzx edx, word [ebx]
mov cl, dl
mov ch, dl
shr cl, 3
and cl, 1
je 0x540213
mov eax, dword [ebx + 0x10]
or eax, dword [ebx + 0x14]
jne 0x540213
mov byte [ebp - 0x1046], al
jmp 0x54021c
mov byte [ebp - 0x1046], 1
mov dl, ch
xor ch, ch
mov byte [ebp - 0x1083], 0
cmp dword [ebp - 0x109c], 0
mov byte [ebp - 0x10b8], 0
mov byte [ebp - 0x104d], ch
mov byte [ebp - 0x1058], ch
mov byte [ebp - 0x1091], ch
mov byte [ebp - 0x1068], ch
mov byte [ebp - 0x1082], ch
je 0x540278
test cl, cl
je 0x540278
cmp dword [ebx + 0xc], 1
ja 0x540278
jb 0x540265
cmp dword [ebx + 8], 0
jae 0x540278
cmp byte [ebx + 0x3e], 0
jne 0x540278
cmp byte [ebx + 0x5e], 0
mov byte [ebp - 0x1061], 0
je 0x54027f
mov byte [ebp - 0x1061], 1
test dl, 1
je 0x540424
mov eax, dword [ebp - 0x1054]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1090], eax
test eax, eax
jne 0x5402f1
push 0xa0
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x104c], eax
mov ecx, eax
push 0
call fcn.00553f40
mov dword [ebp - 0x1090], eax
test eax, eax
je 0x5402cb
mov ecx, dword [eax + 0x10]
add eax, 0x10
push eax
call dword [ecx + 4]
mov eax, dword [ebp - 0x1054]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x5402e2
mov eax, dword [ecx + 0x10]
add ecx, 0x10
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x1054]
mov eax, dword [ebp - 0x1090]
mov dword [ecx + 0xc], eax
mov dword [ebp - 0x10cc], eax
test esi, esi
je 0x540307
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1090]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x54031d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x1090]
cmp byte [ebp - 0x1075], 0
mov dword [eax + 0x98], esi
mov eax, dword [ebp - 0x1054]
je 0x540539
mov eax, dword [eax + 8]
lea edx, [ebp - 0x24]
mov ebx, dword [ebp - 0x1088]
mov dword [ebp - 0x1070], eax
mov eax, dword [eax + 0xc]
lea ecx, [eax*4 + 4]
lea eax, [eax*4 + 6]
mov dword [ebp - 0x10b0], ecx
mov dword [ebp - 0x1080], eax
mov ecx, ebx
mov dword [ebp - 0x104c], eax
lea eax, [ebp - 0x104c]
push eax
call fcn.00558f10
add esp, 4
mov dword [ebp - 0x1060], eax
test eax, eax
jne 0x5410cb
mov ecx, dword [ebp - 0x1080]
xor edx, edx
cmp ecx, dword [ebp - 0x104c]
mov eax, 0x80004005
cmove eax, edx
mov dword [ebp - 0x1060], eax
test eax, eax
jne 0x5410cb
mov ebx, dword [ebp - 0x10b0]
test ebx, ebx
je 0x5403cf
mov eax, dword [ebp - 0x1070]
lea ecx, [ebp - 0x24]
push ebx
add eax, 0x10
push ecx
push eax
call fcn.0058aed0
add esp, 0xc
mov ecx, dword [ebp - 0x1070]
mov al, byte [ebp + ebx - 0x24]
mov byte [ecx + 0x3c], al
mov al, byte [ebp + ebx - 0x23]
mov byte [ecx + 0x3d], al
mov eax, dword [ebp - 0x1054]
mov ebx, dword [eax + 8]
mov ecx, ebx
call fcn.00580ca0
mov al, byte [ebp - 0x1045]
lea ecx, [ebx + 0x20]
mov edx, 0xffffffe0
mov byte [ebp - 0x1045], al
sub edx, ebx
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [ecx + 0x1c]
jne 0x5404ec
inc ecx
lea eax, [edx + ecx]
cmp eax, 2
jb 0x540410
mov ebx, dword [ebp - 0x1088]
mov dword [ebp - 0x10b0], 0
mov byte [ebp - 4], 0x93
lea edx, [ebp - 0x10b0]
mov ecx, dword [ebp - 0x107c]
push edx
push 0x5c1df4
push ecx
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x10b0]
test eax, eax
je 0x5407dd
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x104c], eax
test eax, eax
je 0x5407dd
mov byte [ebp - 4], 0x94
mov ecx, dword [ebp - 0x10b0]
test ecx, ecx
je 0x540487
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0x95
test esi, esi
je 0x540495
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x96
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x97
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x98
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov byte [ebp - 4], 0x99
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x5404e1
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x5404e1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov eax, dword [ebp - 0x104c]
jmp 0x541615
mov eax, dword [ebp - 0x1098]
mov dword [eax], 9
mov byte [ebp - 4], 0x81
test esi, esi
je 0x540506
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1088]
mov byte [ebp - 4], 0x82
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x83
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x84
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov byte [ebp - 4], 0x85
jmp 0x54079b
cmp byte [ebp - 0x1047], 0
je 0x5405e9
push dword [ebx + 0xc]
mov ecx, dword [eax + 4]
push dword [ebx + 8]
mov byte [ebp - 0x1046], 0
push dword [ebx + 0x1c]
mov ebx, dword [ebp - 0x1088]
push ebx
call fcn.005817b0
mov dword [ebp - 0x1060], eax
test eax, eax
jne 0x5410d1
lea eax, [ebp - 0x1092]
push eax
mov eax, dword [ebp - 0x1054]
mov ecx, dword [eax + 4]
call fcn.00581990
mov dword [ebp - 0x1060], eax
test eax, eax
jne 0x5410d1
cmp byte [ebp - 0x1092], al
jne 0x54042a
mov eax, dword [ebp - 0x1098]
mov dword [eax], 9
mov byte [ebp - 4], 0x87
test esi, esi
je 0x5405bc
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x88
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x89
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x8a
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov byte [ebp - 4], 0x8b
jmp 0x54079b
mov eax, dword [eax]
mov edx, 0xc
mov ebx, dword [ebp - 0x1088]
add eax, 0x24
xor ecx, ecx
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x104c], edx
mov dword [ebp - 0x1080], ecx
nop dword [eax]
mov eax, dword [ebx]
mov ecx, SysReAllocString
cmp edx, ecx
cmovb ecx, edx
lea edx, [ebp - 0x10b0]
push edx
push ecx
push dword [ebp - 0x1070]
push ebx
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x10b0]
mov edx, dword [ebp - 0x104c]
add dword [ebp - 0x1080], ecx
sub edx, ecx
add dword [ebp - 0x1070], ecx
mov dword [ebp - 0x1060], eax
mov dword [ebp - 0x104c], edx
test eax, eax
jne 0x5407cc
test ecx, ecx
je 0x540664
test edx, edx
jne 0x540610
xor edx, edx
mov eax, 0x80004005
cmp dword [ebp - 0x1080], 0xc
cmove eax, edx
mov dword [ebp - 0x1060], eax
jne 0x5410d1
mov eax, dword [ebp - 0x1054]
mov eax, dword [eax]
mov dword [ebp - 0x1070], eax
mov edx, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
mov edi, dword [eax + 0x20]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
add eax, 0x24
mov dword [ebp - 0x104c], eax
xor esi, esi
nop dword [eax]
mov eax, edi
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
mov eax, dword [ebp - 0x104c]
shr ecx, 8
xor cl, byte [eax + esi]
movzx eax, cl
xor eax, edx
shr edx, 8
movzx eax, al
xor edx, dword [eax*4 + 0x5ff700]
movzx eax, dl
add eax, ebx
imul ebx, eax, 0x8088405
inc ebx
mov eax, ebx
shr eax, 0x18
xor eax, edi
shr edi, 8
movzx eax, al
xor edi, dword [eax*4 + 0x5ff700]
mov eax, dword [ebp - 0x104c]
mov byte [eax + esi], cl
inc esi
cmp esi, 0xc
jb 0x5406b0
mov eax, dword [ebp - 0x1070]
mov ecx, dword [ebp - 0x108c]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov eax, dword [ebp - 0x1054]
mov eax, dword [eax]
mov dl, byte [eax + 0x2f]
mov al, byte [ecx]
shr al, 3
test al, 1
je 0x54073b
mov eax, dword [ecx + 0x18]
shr eax, 8
jmp 0x54073f
movzx eax, byte [ecx + 0x1f]
mov esi, dword [ebp - 0x10a0]
mov edi, dword [ebp - 0x10a8]
mov ebx, dword [ebp - 0x1088]
cmp dl, al
je 0x54042a
mov eax, dword [ebp - 0x1098]
mov dword [eax], 9
mov byte [ebp - 4], 0x8d
test esi, esi
je 0x540773
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0x8e
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0x8f
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0x90
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov byte [ebp - 4], 0x91
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x541613
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x541613
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
jmp 0x541613
mov cl, byte [ebp - 0x1045]
mov byte [ebp - 0x1045], cl
jmp 0x5410d1
mov eax, dword [ebx + 0x10]
sub eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x14]
sbb ecx, dword [ebx + 0x1c]
cmp dword [ebp - 0x109c], 0
mov dword [ebp - 0x1080], ecx
mov dword [ebp - 0x10bc], ecx
mov ecx, dword [ebp - 0x108c]
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x10c0], eax
jne 0x540a9f
test byte [ecx], 1
je 0x540be4
xor eax, eax
mov byte [ebp - 0x1082], 0
mov dword [ebp - 0x106c], 0
mov dword [ebp - 0x104c], eax
mov byte [ebp - 4], 0x9b
cmp byte [ebp - 0x1047], al
je 0x540925
push 0x28
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x106c], eax
mov dword [eax + 4], 0
mov dword [eax], vtable.NArchive::NZip::COutStreamWithPadPKCS7.0
push eax
mov dword [eax + 8], 0
call dword [0x5d1c9c]
mov eax, dword [ebp - 0x106c]
mov ecx, 0x10
mov dword [ebp - 0x104c], eax
mov eax, dword [ebp - 0x108c]
mov eax, dword [eax + 8]
and eax, 0xf
sub ecx, eax
mov dword [ebp - 0x107c], ecx
mov ecx, dword [ebp - 0x105c]
push ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x106c]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x5408c1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x106c]
mov ecx, dword [ebp - 0x108c]
mov edi, dword [ebp - 0x106c]
mov edx, dword [ebp - 0x105c]
mov dword [eax + 8], edx
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edi + 0x18], eax
mov eax, edi
mov edi, dword [ebp - 0x107c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x108c]
mov dword [eax + 0x20], edi
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov byte [eax + 0x24], 0
mov eax, dword [ebp - 0x10bc]
mov dword [ebp - 0x1080], eax
mov eax, dword [ebp - 0x10c0]
mov dword [ebp - 0x1070], eax
mov eax, dword [ebp - 0x104c]
jmp 0x54092d
mov edx, dword [ebp - 0x105c]
xor edi, edi
mov esi, dword [ecx + 8]
add edi, esi
mov dword [ebp - 0x107c], edi
mov edi, 0
adc edi, dword [ecx + 0xc]
mov dword [ebp - 0x1088], edi
mov edi, dword [ebp - 0x1070]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x1080]
cmp dword [ecx + 0xc], edi
mov dword [ebp - 0x1060], esi
mov esi, dword [ebp - 0x10a0]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x10a8]
jb 0x540988
ja 0x54097f
mov ecx, dword [ebp - 0x1070]
cmp dword [ebp - 0x1060], ecx
jbe 0x54098e
mov byte [ebp - 0x1091], 1
jmp 0x5409f5
mov ecx, dword [ebp - 0x1070]
cmp dword [ebp - 0x107c], ecx
jne 0x5409aa
mov edi, dword [ebp - 0x1088]
cmp edi, dword [ebp - 0x1080]
mov edi, dword [ebp - 0x10a8]
je 0x5409f5
mov esi, dword [ebp - 0x1088]
cmp dword [ebp - 0x1080], esi
mov esi, dword [ebp - 0x10a0]
mov byte [ebp - 0x1091], 1
jb 0x5409f5
ja 0x5409cf
cmp ecx, dword [ebp - 0x107c]
jbe 0x5409f5
mov ecx, dword [ebp - 0x107c]
mov edi, dword [ebp - 0x1088]
mov dword [ebp - 0x1070], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, edi
mov dword [ebp - 0x1080], edi
mov edi, dword [ebp - 0x10a8]
mov dword [ebp - 0x18], ecx
push dword [ebp - 0x10c8]
test eax, eax
mov ecx, edx
cmovne ecx, eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x1054]
push 0
push ecx
push ebx
push dword [eax + 0xc]
call fcn.00554060
mov ecx, dword [ebp - 0x105c]
mov edx, dword [ebp - 0x108c]
mov dword [ebp - 0x1060], eax
mov eax, dword [ecx + 0x10]
cmp eax, dword [edx + 8]
jne 0x540a3a
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0xc]
je 0x540a41
mov byte [ebp - 0x104d], 1
cmp byte [ebp - 0x1047], 0
je 0x540a88
mov eax, dword [ebp - 0x106c]
mov ecx, dword [ebp - 0x1070]
cmp dword [eax + 0x10], ecx
jne 0x540a66
mov ecx, dword [ebp - 0x1080]
cmp dword [eax + 0x14], ecx
je 0x540a6d
mov byte [ebp - 0x104d], 1
mov ecx, dword [ebp - 0x1068]
cmp byte [eax + 0x24], 0
mov eax, 1
movzx ecx, cl
cmovne ecx, eax
mov dword [ebp - 0x1068], ecx
mov byte [ebp - 4], 0x9c
mov eax, dword [ebp - 0x104c]
test eax, eax
je 0x541068
jmp 0x54105c
test byte [ecx], 1
je 0x540be4
mov eax, dword [ebp - 0x1054]
mov byte [ebp - 0x1082], 1
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x10a4], eax
mov byte [ebp - 4], 0x9d
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x540ae1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x10a4]
mov dword [eax + 0x68], ebx
mov eax, dword [ebp - 0x1054]
mov byte [ebp - 4], 0x93
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x78], 0
mov byte [ecx + 0x55], 0
mov dword [ecx + 0x58], 0
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x60], 0
mov dword [ecx + 0x64], 0
call fcn.00553ec0
mov dword [ebp - 0x104c], eax
test eax, eax
je 0x540bde
mov byte [ebp - 4], 0xa5
mov ecx, dword [ebp - 0x10b0]
test ecx, ecx
je 0x540b4d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xa6
test esi, esi
je 0x540b5b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xa7
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xa8
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xa9
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xaa
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x540ba7
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x540ba7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x540bd3
mov dword [ebp - 4], 0xab
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x540bd3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x68], 0
mov eax, dword [ebp - 0x104c]
jmp 0x541615
mov ecx, dword [ebp - 0x108c]
cmp byte [ebp - 0x1061], 0
mov eax, dword [ebp - 0x107c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1070], eax
je 0x540c09
lea eax, [ecx + 8]
mov dword [ebp - 0x104c], eax
jmp 0x540c13
mov dword [ebp - 0x104c], 0
xor eax, eax
lea edx, [ebp - 0x10c0]
cmp byte [ebp - 0x1046], al
cmove edx, eax
cmp byte [ebp - 0x1082], al
je 0x540c40
mov eax, dword [ebp - 0x1054]
mov ecx, dword [eax + 0xc]
lea eax, [ecx + 0x10]
neg ecx
sbb ecx, ecx
and ecx, eax
jmp 0x540c42
mov ecx, ebx
push dword [ebp - 0x10c8]
push dword [ebp - 0x104c]
push edx
mov edx, dword [ebp - 0x105c]
push edx
push ecx
push dword [ebp - 0x107c]
call dword [ebp - 0x1070]
mov dword [ebp - 0x1060], eax
mov dword [ebp - 4], 0x93
test eax, eax
jne 0x5410b3
mov dword [ebp - 0x1070], eax
mov byte [ebp - 4], 0xb5
lea edx, [ebp - 0x1070]
mov ecx, dword [ebp - 0x107c]
push edx
push 0x5c1d94
push ecx
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x54104e
cmp dword [ebp - 0x10b0], 0
je 0x54104e
mov ecx, dword [eax]
lea edx, [ebp - 0x1c]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x104c], eax
test eax, eax
je 0x540d6f
mov byte [ebp - 4], 0xb6
mov ecx, dword [ebp - 0x1070]
test ecx, ecx
je 0x540ce0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xb7
mov eax, dword [ebp - 0x10b0]
test eax, eax
je 0x540cf4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xb8
test esi, esi
je 0x540d02
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xb9
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xba
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xbb
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xbc
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x540d4e
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x540d4e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x540bd3
mov dword [ebp - 4], 0xbd
jmp 0x540bbf
mov edx, dword [ebp - 0x1c]
mov eax, edx
mov ecx, dword [ebp - 0x18]
and eax, ecx
cmp eax, 0xffffffff
je 0x54104e
cmp byte [ebp - 0x1047], 0
je 0x541008
mov eax, edx
mov ecx, 0x10
and eax, 0xf
sub ecx, eax
mov eax, 0
mov dword [ebp - 0x1080], ecx
add ecx, edx
mov edx, dword [ebp - 0x10c0]
adc eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x10bc]
jb 0x540dd9
ja 0x540dbf
cmp ecx, edx
jbe 0x540dcb
mov byte [ebp - 0x104d], 1
jmp 0x54104e
cmp eax, dword [ebp - 0x10bc]
ja 0x540de5
jb 0x540dd9
cmp ecx, edx
jae 0x540de5
mov byte [ebp - 0x10b8], 1
jmp 0x54104e
mov dword [ebp - 0x106c], 0
mov byte [ebp - 4], 0xbe
lea edx, [ebp - 0x106c]
mov ecx, dword [ebp - 0x107c]
push edx
push 0x5c1ed4
push ecx
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x106c]
test eax, eax
jne 0x540e20
cmp dword [ebp - 0x109c], eax
jne 0x540ff8
xor ecx, ecx
mov dword [ebp - 0x104c], ecx
test eax, eax
je 0x540f38
mov ecx, dword [eax]
lea edx, [ebp - 0x104c]
push edx
push 0x20
lea edx, [ebp - 0x44]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x107c], eax
test eax, eax
je 0x540f1e
mov byte [ebp - 4], 0xbf
mov ecx, dword [ebp - 0x106c]
test ecx, ecx
je 0x540e65
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xc0
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x540e79
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xc1
mov eax, dword [ebp - 0x10b0]
test eax, eax
je 0x540e8d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xc2
test esi, esi
je 0x540e9b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xc3
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xc4
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xc5
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xc6
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x540ee7
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x540ee7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x540f13
mov dword [ebp - 4], 0xc7
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x540f13
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x68], 0
mov eax, dword [ebp - 0x107c]
jmp 0x541615
mov ecx, dword [ebp - 0x104c]
cmp ecx, dword [ebp - 0x1080]
jbe 0x540f38
mov byte [ebp - 0x10b8], 1
jmp 0x540ff2
mov eax, 0x20
lea edx, [ebp - 0x44]
sub eax, ecx
add edx, ecx
mov dword [ebp - 0x107c], eax
mov eax, dword [ebp - 0x1054]
mov ecx, dword [eax + 0xc]
lea eax, [ebp - 0x107c]
push eax
lea eax, [ecx + 0x10]
neg ecx
sbb ecx, ecx
and ecx, eax
call fcn.00558f10
add esp, 4
mov dword [ebp - 0x1060], eax
test eax, eax
jne 0x540ff2
mov ecx, dword [ebp - 0x104c]
add ecx, dword [ebp - 0x107c]
mov eax, dword [ebp - 0x1080]
cmp ecx, eax
jbe 0x540f94
mov byte [ebp - 0x10b8], 1
jmp 0x540ff2
jae 0x540f9f
mov byte [ebp - 0x104d], 1
jmp 0x540ff2
xor edx, edx
test eax, eax
je 0x540ff2
mov ebx, dword [ebp - 0x1068]
lea esi, [edx + 1]
mov edi, eax
mov al, byte [ebp - 0x1045]
mov byte [ebp - 0x1045], al
movzx eax, byte [ebp + edx - 0x44]
cmp eax, edi
movzx ebx, bl
cmovne ebx, esi
inc edx
cmp edx, edi
jb 0x540fb0
mov al, byte [ebp - 0x1045]
mov esi, dword [ebp - 0x10a0]
mov edi, dword [ebp - 0x10a8]
mov dword [ebp - 0x1068], ebx
mov ebx, dword [ebp - 0x1088]
mov byte [ebp - 0x1045], al
mov eax, dword [ebp - 0x106c]
mov byte [ebp - 4], 0xc8
test eax, eax
je 0x54104e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x54104e
mov eax, dword [ebp - 0x10bc]
cmp ecx, eax
ja 0x54103b
jb 0x54101c
cmp edx, dword [ebp - 0x10c0]
jae 0x54102d
mov al, byte [ebp - 0x1046]
test al, al
setne byte [ebp - 0x10b8]
jmp 0x541048
cmp ecx, eax
jb 0x541042
ja 0x54103b
cmp edx, dword [ebp - 0x10c0]
jbe 0x541042
mov byte [ebp - 0x104d], 1
mov al, byte [ebp - 0x1046]
mov byte [ebp - 0x1083], al
mov byte [ebp - 4], 0xc9
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x541062
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x108c]
cmp dword [ebp - 0x1060], 0
jne 0x5410b3
cmp dword [ebp - 0x109c], 0xe
jne 0x5410b3
mov eax, dword [ebp - 0x1054]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x10]
mov al, byte [edx]
mov edx, 1
shr al, 1
test al, 1
mov eax, 4
cmovne eax, edx
mov edx, dword [ebp - 0x1058]
cmp dword [ecx + 0x34], eax
mov eax, 1
movzx edx, dl
cmovne edx, eax
mov dword [ebp - 0x1058], edx
mov byte [ebp - 4], 0xca
mov eax, dword [ebp - 0x10b0]
test eax, eax
je 0x5410c7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x1060]
cmp eax, 1
jne 0x541151
mov byte [ebp - 4], 0xcb
test esi, esi
je 0x5410e4
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xcc
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xcd
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xce
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xcf
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x541130
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x541130
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x541613
mov dword [ebp - 4], 0xd0
jmp 0x5415ff
cmp eax, 0x80004001
jne 0x5411e3
mov eax, dword [ebp - 0x1098]
mov dword [eax], 1
mov byte [ebp - 4], 0xd1
test esi, esi
je 0x541176
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xd2
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xd3
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xd4
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xd5
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x5411c2
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x5411c2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x541613
mov dword [ebp - 4], 0xd6
jmp 0x5415ff
test eax, eax
je 0x54127c
mov byte [ebp - 4], 0xd7
test esi, esi
je 0x5411f9
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xd8
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xd9
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xda
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xdb
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x541245
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x541245
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x541271
mov dword [ebp - 4], 0xdc
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x541271
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x68], 0
mov eax, dword [ebp - 0x1060]
jmp 0x541615
cmp byte [ebp - 0x1081], 0
mov al, 1
mov ecx, dword [ebp - 0x105c]
mov edx, dword [ebp - 0x108c]
mov byte [ebp - 0x1046], 1
mov dword [ebp - 0x107c], eax
mov byte [ebp - 0x1047], al
je 0x5412b5
mov eax, dword [ecx + 0x18]
not eax
cmp eax, dword [edx + 0x1c]
sete byte [ebp - 0x1046]
cmp byte [ebp - 0x1061], 0
je 0x5412d5
mov eax, dword [ecx + 0x10]
cmp eax, dword [edx + 8]
jne 0x5412ce
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0xc]
je 0x5412d5
mov byte [ebp - 0x104d], 1
cmp byte [ebp - 0x1075], 0
je 0x541516
cmp byte [ebp - 0x1082], 0
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x10ac], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x104c], eax
mov dword [ebp - 0x109c], ecx
je 0x541329
mov eax, dword [ebp - 0x1054]
mov ecx, dword [eax + 0xc]
lea eax, [ecx + 0x10]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ebp - 0x104c]
mov dword [ebp - 0x1080], ecx
jmp 0x54132f
mov dword [ebp - 0x1080], ebx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10ac]
mov dword [ebp - 0x10c0], eax
mov eax, dword [ebp - 0x109c]
mov dword [ebp - 0x10bc], eax
xor al, al
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x1061], al
nop word [eax + eax]
lea eax, [ebp - 0x1044]
mov edx, 0x1000
xor ecx, ecx
mov dword [ebp - 0x104c], eax
mov dword [ebp - 0x10b0], edx
mov dword [ebp - 0x1070], ecx
nop
mov ecx, SysReAllocString
lea edi, [ebp - 0x10a0]
cmp edx, ecx
push edi
cmovb ecx, edx
mov edx, dword [ebp - 0x1080]
push ecx
push dword [ebp - 0x104c]
mov eax, dword [edx]
push edx
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x10a0]
mov edx, dword [ebp - 0x10b0]
add dword [ebp - 0x1070], ecx
sub edx, ecx
add dword [ebp - 0x104c], ecx
mov edi, dword [ebp - 0x10a8]
mov dword [ebp - 0x10b0], edx
test eax, eax
jne 0x541475
test ecx, ecx
je 0x5413da
test edx, edx
jne 0x541380
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x54148f
add eax, dword [ebp - 0x10c0]
mov ecx, 0
mov edx, eax
mov dword [ebp - 0x1070], eax
adc ecx, dword [ebp - 0x10bc]
sub edx, dword [ebp - 0x10ac]
mov dword [ebp - 0x10c0], eax
mov eax, ecx
sbb eax, dword [ebp - 0x109c]
mov byte [ebp - 0x1061], 1
mov dword [ebp - 0x104c], ecx
mov dword [ebp - 0x10bc], ecx
mov dword [ebp - 0x10b0], eax
jne 0x54143c
cmp edx, 0x400000
jb 0x541360
mov ecx, dword [ebp - 0x10c8]
lea edx, [ebp - 0x1c]
push edx
lea edx, [ebp - 0x10c0]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x1070]
mov dword [ebp - 0x10ac], ecx
mov ecx, dword [ebp - 0x104c]
mov dword [ebp - 0x109c], ecx
test eax, eax
je 0x541360
jmp 0x541481
mov al, byte [ebp - 0x1045]
mov byte [ebp - 0x1045], al
xor al, al
mov dword [ebp - 0x107c], eax
mov byte [ebp - 0x1047], al
cmp byte [ebp - 0x1083], 0
je 0x5414b6
mov ecx, dword [ebp - 0x10b8]
mov eax, 1
cmp byte [ebp - 0x1061], 0
movzx ecx, cl
cmovne ecx, eax
mov dword [ebp - 0x10b8], ecx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
sbb eax, dword [ebx + 0x1c]
or ecx, eax
je 0x5414ca
mov dl, 1
jmp 0x54151c
lea eax, [ebp - 0x1047]
mov dword [ebx + 0x10], 0xa
push eax
mov eax, dword [ebp - 0x1054]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov byte [ebx + 0x20], 0
mov ecx, dword [eax + 8]
push ebx
call fcn.00581040
movzx ecx, byte [ebp - 0x1047]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dl, byte [ebp - 0x104d]
jmp 0x541522
mov dl, byte [ebp - 0x104d]
mov ecx, dword [ebp - 0x107c]
cmp byte [ebp - 0x1046], 0
mov eax, dword [ebp - 0x1098]
mov dword [eax], 3
je 0x54158d
test cl, cl
je 0x54158d
cmp byte [ebp - 0x10b8], 0
mov dword [eax], 0
je 0x541552
mov dword [eax], 6
jmp 0x54158d
cmp byte [ebp - 0x1068], 0
je 0x541563
mov dword [eax], 3
jmp 0x54158d
test dl, dl
jne 0x541587
cmp byte [ebp - 0x1091], dl
jne 0x541633
cmp byte [ebp - 0x1058], dl
jne 0x541633
cmp byte [ebp - 0x1045], dl
je 0x54158d
mov dword [eax], 5
mov byte [ebp - 4], 0xdd
test esi, esi
je 0x54159b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0xde
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [ebp - 4], 0xdf
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x105c]
mov byte [ebp - 4], 0xe0
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xe1
mov esi, dword [ebp - 0x1090]
test esi, esi
je 0x5415e7
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x5415e7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x98], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10a4]
test esi, esi
je 0x541613
mov dword [ebp - 4], 0xe2
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x541613
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 0x68], 0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00587d99
mov esp, ebp
pop ebp
ret 0x24
mov dword [eax], 8
jmp 0x54158d