Function at 0x100ac720
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Parse pe header

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f0871
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1c8
push esi
push edi
mov eax, dword [0x101040b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x6373694d
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x34], 0
call fcn.10024700
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.10024680
lea ecx, [ebp - 0x78]
mov dword [ebp - 4], 1
call fcn.100246b0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x38], 0x30677373
mov word [ebp - 0x34], 0x38
call fcn.10024700
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x20], 0x707761
call fcn.10024700
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x40], 0x72616373
mov word [ebp - 0x3c], 0x3032
mov byte [ebp - 0x3a], 0
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x38], 0x67733367
mov word [ebp - 0x34], 0x31
call fcn.10024700
lea eax, [ebp - 0x41]
mov dword [ebp - 4], 5
push eax
lea ecx, [ebp - 0xd0]
push ecx
lea edx, [ebp - 0x130]
push edx
lea ecx, [ebp - 0x6c]
call fcn.100b67a0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], 0x6f747561
mov dword [ebp - 0x28], 0x7975625f
mov word [ebp - 0x24], 0x31
call fcn.10024700
mov byte [ebp - 4], 7
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x50], 0x6f747561
mov dword [ebp - 0x4c], 0x79756220
mov byte [ebp - 0x48], 0
call fcn.10024700
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov byte [ebp - 4], 9
lea eax, [ebp - 0xb0]
push eax
lea ecx, [edi + 0x68]
call fcn.10024680
lea eax, [ebp - 0xc8]
mov byte [edi + 0x99], 1
push eax
lea ecx, [edi + 0xa0]
call fcn.10024680
mov esi, dword [ebp - 0x6c]
xor ecx, ecx
cmp byte [edi + 0x99], cl
mov edx, 0xf
cmovne ecx, edx
mov dword [edi + 0xd4], ecx
lea eax, [ecx + 0x14]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x100ac923
lea eax, [edi + 0xb8]
mov edi, eax
nop word [eax + eax]
push esi
mov ecx, edi
call fcn.10043870
add esi, 0x18
cmp esi, dword [ebp - 0x14]
jne 0x100ac910
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x90]
xor esi, esi
mov ecx, dword [ebp - 0x8c]
sub ecx, edx
mov dword [ebp - 0x54], 0
add ecx, 3
mov dword [ebp - 0x20], edx
shr ecx, 2
cmp edx, dword [ebp - 0x8c]
cmova ecx, esi
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x100ac9fd
lea ecx, [edi + 0xc8]
nop dword [eax]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.100240b0
lea ecx, [edi + 0xc8]
mov esi, dword [eax]
lea eax, [ebp - 0xd0]
push eax
call fcn.100240c0
push esi
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x3c]
push dword [eax]
call fcn.100257b0
add esp, 8
lea ecx, [edi + 0xc8]
mov esi, eax
lea eax, [ebp - 0x34]
push eax
call fcn.100240b0
mov esi, dword [esi]
lea ecx, [edi + 0xb8]
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
call fcn.10029210
cmp dword [ebp - 0x14], eax
jae 0x100ac9cd
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0xc8]
call fcn.100384e0
cmp esi, dword [ebp - 0x58]
jne 0x100ac9de
mov eax, dword [edi + 0x94]
test eax, eax
je 0x100ac9de
call eax
mov eax, dword [ebp - 0x54]
lea ecx, [edi + 0xc8]
mov edx, dword [ebp - 0x20]
inc eax
add edx, 4
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x20], edx
cmp eax, dword [ebp - 0x5c]
jne 0x100ac960
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xa
call fcn.10024200
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xb
call fcn.100246b0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0xc
call fcn.100246b0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xd
call fcn.10043ac0
push fcn.100246b0
push 4
push 0x18
lea eax, [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100e7876
lea eax, [edi + 0x30]
mov dword [ebp - 0x20], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x20]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [edi + 0x18]
call fcn.100384e0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x636f6c67
push eax
lea ecx, [ebp - 0x190]
mov word [ebp - 0x34], 0x6b
call fcn.10024700
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x40], 0x32706b68
mov dword [ebp - 0x3c], 0x303030
call fcn.10024700
mov byte [ebp - 4], 0xf
xor ecx, ecx
mov dword [ebp - 0x30], 0x7c535056
mov dword [ebp - 0x2c], 0x464f4a50
mov dword [ebp - 0x28], 0x5146404d
mov byte [ebp - 0x24], 0x23
nop dword [eax]
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xd
jb 0x100acaf0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x160]
call fcn.10024700
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x40], 0x74696c65
mov word [ebp - 0x3c], 0x65
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x38], 0x30353270
mov byte [ebp - 0x34], 0
call fcn.10024700
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x40], 0x39636574
mov byte [ebp - 0x3c], 0
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x38], 0x37356e66
mov byte [ebp - 0x34], 0
call fcn.10024700
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x40], 0x67616564
mov word [ebp - 0x3c], 0x656c
mov byte [ebp - 0x3a], 0
call fcn.10024700
lea eax, [ebp - 0x41]
mov dword [ebp - 4], 0x15
push eax
lea ecx, [ebp - 0xd0]
push ecx
lea edx, [ebp - 0x190]
push edx
lea ecx, [ebp - 0x6c]
call fcn.100b67a0
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], 0x6f747561
mov dword [ebp - 0x28], 0x7975625f
mov word [ebp - 0x24], 0x32
call fcn.10024700
push 0x100f6690
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x17
call fcn.10024700
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [edi + 0x110]
call fcn.10024680
mov byte [edi + 0x141], 0
mov dword [edi + 0x17c], 0
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x6c]
mov dword [edi + 0xe8], 0x14
mov dword [edi + 0xec], 0x14
mov dword [ebp - 0x5c], eax
cmp esi, eax
je 0x100acc8b
lea eax, [edi + 0x160]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
push esi
mov ecx, eax
call fcn.10043870
mov eax, dword [ebp - 0x58]
add esi, 0x18
cmp esi, edi
jne 0x100acc76
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x90]
xor esi, esi
mov ecx, dword [ebp - 0x8c]
sub ecx, edx
mov dword [ebp - 0x20], 0
add ecx, 3
mov dword [ebp - 0x54], edx
shr ecx, 2
cmp edx, dword [ebp - 0x8c]
cmova ecx, esi
mov dword [ebp - 0x58], ecx
test ecx, ecx
je 0x100acd62
lea ecx, [edi + 0x170]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100240b0
lea ecx, [edi + 0x170]
mov esi, dword [eax]
lea eax, [ebp - 0x3c]
push eax
call fcn.100240c0
push esi
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0xd0]
push dword [eax]
call fcn.100257b0
add esp, 8
lea ecx, [edi + 0x170]
mov esi, eax
lea eax, [ebp - 0xcc]
push eax
call fcn.100240b0
mov esi, dword [esi]
lea ecx, [edi + 0x160]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
call fcn.10029210
cmp dword [ebp - 0x14], eax
jae 0x100acd32
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0x170]
call fcn.100384e0
cmp esi, dword [ebp - 0x5c]
jne 0x100acd43
mov eax, dword [edi + 0x13c]
test eax, eax
je 0x100acd43
call eax
mov eax, dword [ebp - 0x20]
lea ecx, [edi + 0x170]
mov edx, dword [ebp - 0x54]
inc eax
add edx, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x54], edx
cmp eax, dword [ebp - 0x58]
jne 0x100accc5
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x1a
call fcn.10024200
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x1b
call fcn.100246b0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x1c
call fcn.100246b0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x1d
call fcn.10043ac0
push fcn.100246b0
push 8
push 0x18
lea eax, [ebp - 0x190]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100e7876
lea eax, [edi + 0xd8]
mov dword [ebp - 0x20], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x20]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x20]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x74736576
push eax
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 0x34], 0
call fcn.10024700
mov dword [ebp - 4], 0x1e
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x50], 0x74736576
mov dword [ebp - 0x4c], 0x6d6c6568
mov byte [ebp - 0x48], 0
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 0x38], 0x65736174
mov word [ebp - 0x34], 0x72
call fcn.10024700
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x40], 0x75666564
mov dword [ebp - 0x3c], 0x726573
call fcn.10024700
mov byte [ebp - 4], 0x21
xor ecx, ecx
mov dword [ebp - 0x30], 0x5542464b
mov dword [ebp - 0x2c], 0x4e51425a
mov word [ebp - 0x28], 0x514c
mov byte [ebp - 0x26], 0x23
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xb
jb 0x100ace97
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x178]
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x22
push eax
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x38], 0x6f6c6f6d
mov dword [ebp - 0x34], 0x766f74
call fcn.10024700
mov byte [ebp - 4], 0x23
xor ecx, ecx
mov dword [ebp - 0x30], 0x44404d4a
mov dword [ebp - 0x2c], 0x424d4651
mov word [ebp - 0x28], 0x4647
mov byte [ebp - 0x26], 0x23
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xb
jb 0x100acef0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x148]
call fcn.10024700
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x38], 0x6f636564
mov word [ebp - 0x34], 0x79
call fcn.10024700
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x2c], 0x73616c66
mov dword [ebp - 0x28], 0x6e616268
mov word [ebp - 0x24], 0x67
call fcn.10024700
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x50], 0x72676568
mov dword [ebp - 0x4c], 0x64616e65
mov word [ebp - 0x48], 0x65
call fcn.10024700
mov byte [ebp - 4], 0x27
xor ecx, ecx
mov dword [ebp - 0x30], 0x484c4e50
mov dword [ebp - 0x2c], 0x46514446
mov dword [ebp - 0x28], 0x4647424d
mov byte [ebp - 0x24], 0x23
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xd
jb 0x100acf97
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xe8]
call fcn.10024700
lea eax, [ebp - 0x41]
mov dword [ebp - 4], 0x28
push eax
lea ecx, [ebp - 0xd0]
push ecx
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp - 0x6c]
call fcn.100b67a0
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], 0x6f747561
mov dword [ebp - 0x28], 0x7975625f
mov word [ebp - 0x24], 0x33
call fcn.10024700
push 0x100f6690
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x2a
call fcn.10024700
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0x2c
push eax
lea ecx, [edi + 0x1b8]
call fcn.10024680
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x6c]
mov byte [edi + 0x1e9], 0
mov dword [edi + 0x224], 0
mov dword [edi + 0x190], 0x14
mov dword [edi + 0x194], 0x14
mov dword [ebp - 0x5c], eax
cmp esi, eax
je 0x100ad095
lea eax, [edi + 0x208]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
nop
push esi
mov ecx, eax
call fcn.10043870
mov eax, dword [ebp - 0x58]
add esi, 0x18
cmp esi, edi
jne 0x100ad080
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x90]
xor esi, esi
mov ecx, dword [ebp - 0x8c]
sub ecx, edx
mov dword [ebp - 0x20], 0
add ecx, 3
mov dword [ebp - 0x54], edx
shr ecx, 2
cmp edx, dword [ebp - 0x8c]
cmova ecx, esi
mov dword [ebp - 0x58], ecx
test ecx, ecx
je 0x100ad16d
lea ecx, [edi + 0x218]
nop
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100240b0
lea ecx, [edi + 0x218]
mov esi, dword [eax]
lea eax, [ebp - 0x3c]
push eax
call fcn.100240c0
push esi
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0xd0]
push dword [eax]
call fcn.100257b0
add esp, 8
lea ecx, [edi + 0x218]
mov esi, eax
lea eax, [ebp - 0xcc]
push eax
call fcn.100240b0
mov esi, dword [esi]
lea ecx, [edi + 0x208]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
call fcn.10029210
cmp dword [ebp - 0x14], eax
jae 0x100ad13d
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0x218]
call fcn.100384e0
cmp esi, dword [ebp - 0x5c]
jne 0x100ad14e
mov eax, dword [edi + 0x1e4]
test eax, eax
je 0x100ad14e
call eax
mov eax, dword [ebp - 0x20]
lea ecx, [edi + 0x218]
mov edx, dword [ebp - 0x54]
inc eax
add edx, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x54], edx
cmp eax, dword [ebp - 0x58]
jne 0x100ad0d0
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x2d
call fcn.10024200
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x2e
call fcn.100246b0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x2f
call fcn.100246b0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x30
call fcn.10043ac0
push fcn.100246b0
push 0xb
push 0x18
lea eax, [ebp - 0x1d8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100e7876
lea eax, [edi + 0x180]
mov dword [ebp - 0x20], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x20]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x20]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
mov dword [ebp - 0x30], 0x4057424e
xor ecx, ecx
mov dword [ebp - 0x2c], 0x48424e4b
mov dword [ebp - 0x28], 0x23444d4a
nop dword [eax + eax]
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xc
jb 0x100ad220
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x130]
call fcn.10024700
mov dword [ebp - 4], 0x31
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x38], 0x616d6164
mov word [ebp - 0x34], 0x6567
mov byte [ebp - 0x32], 0
call fcn.10024700
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x40], 0x6d726168
mov word [ebp - 0x3c], 0x6465
mov byte [ebp - 0x3a], 0
call fcn.10024700
mov byte [ebp - 4], 0x33
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x2c], 0x63727570
mov dword [ebp - 0x28], 0x65736168
mov word [ebp - 0x24], 0x73
call fcn.10024700
lea eax, [ebp - 0x41]
mov dword [ebp - 4], 0x34
push eax
lea ecx, [ebp - 0xd0]
push ecx
lea edx, [ebp - 0x130]
push edx
lea ecx, [ebp - 0x6c]
call fcn.100b67a0
mov byte [ebp - 4], 0x35
xor ecx, ecx
mov dword [ebp - 0x30], 0x4a574c4d
mov dword [ebp - 0x2c], 0x42404a45
mov dword [ebp - 0x28], 0x4d4c4a57
mov word [ebp - 0x24], 0x2350
nop
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xe
jb 0x100ad2f0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10024700
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x20], 0x73676f6c
mov byte [ebp - 0x1c], 0
call fcn.10024700
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x38
push eax
lea ecx, [edi + 0x260]
call fcn.10024680
lea eax, [ebp - 0xb0]
mov byte [edi + 0x291], 1
push eax
lea ecx, [edi + 0x298]
call fcn.10024680
mov esi, dword [ebp - 0x6c]
xor ecx, ecx
cmp byte [edi + 0x291], cl
mov eax, 0xf
cmovne ecx, eax
mov dword [edi + 0x2cc], ecx
lea eax, [ecx + 0x14]
mov dword [edi + 0x238], eax
mov dword [edi + 0x23c], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
cmp esi, eax
je 0x100ad3c8
lea eax, [edi + 0x2b0]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
push esi
mov ecx, eax
call fcn.10043870
mov eax, dword [ebp - 0x58]
add esi, 0x18
cmp esi, edi
jne 0x100ad3b3
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x90]
xor esi, esi
mov ecx, dword [ebp - 0x8c]
sub ecx, edx
mov dword [ebp - 0x18], 0
add ecx, 3
mov dword [ebp - 0x54], edx
shr ecx, 2
cmp edx, dword [ebp - 0x8c]
cmova ecx, esi
mov dword [ebp - 0x58], ecx
test ecx, ecx
je 0x100ad49f
lea ecx, [edi + 0x2c0]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100240b0
lea ecx, [edi + 0x2c0]
mov esi, dword [eax]
lea eax, [ebp - 0x3c]
push eax
call fcn.100240c0
push esi
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0xd0]
push dword [eax]
call fcn.100257b0
add esp, 8
lea ecx, [edi + 0x2c0]
mov esi, eax
lea eax, [ebp - 0xcc]
push eax
call fcn.100240b0
mov esi, dword [esi]
lea ecx, [edi + 0x2b0]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
call fcn.10029210
cmp dword [ebp - 0x14], eax
jae 0x100ad46f
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0x2c0]
call fcn.100384e0
cmp esi, dword [ebp - 0x5c]
jne 0x100ad480
mov eax, dword [edi + 0x28c]
test eax, eax
je 0x100ad480
call eax
mov eax, dword [ebp - 0x18]
lea ecx, [edi + 0x2c0]
mov edx, dword [ebp - 0x54]
inc eax
add edx, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x54], edx
cmp eax, dword [ebp - 0x58]
jne 0x100ad402
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x39
call fcn.10024200
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x3a
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x3b
call fcn.100246b0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x3c
call fcn.10043ac0
push fcn.100246b0
push 4
push 0x18
lea eax, [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100e7876
lea eax, [edi + 0x228]
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
movaps xmm0, xmmword [0x100f8660]
lea eax, [ebp - 0x70]
pxor xmm0, xmmword [0x100f88c0]
lea ecx, [ebp - 0xc8]
push eax
lea esi, [edi + 0x2d0]
mov byte [ebp - 0x60], 0
movups xmmword [ebp - 0x70], xmm0
call fcn.10024700
mov dword [ebp - 4], 0x3d
mov ecx, 0x10
movaps xmm0, xmmword [0x100f8660]
pxor xmm0, xmmword [0x100f8b90]
mov word [ebp - 0x84], 0x4650
mov byte [ebp - 0x82], 0x23
movups xmmword [ebp - 0x94], xmm0
xor byte [ebp + ecx - 0x94], 0x23
inc ecx
cmp ecx, 0x13
jb 0x100ad591
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0x3e
push eax
lea ecx, [edi + 0x340]
call fcn.10024680
lea eax, [ebp - 0xc8]
push eax
lea ecx, [edi + 0x308]
call fcn.10024680
mov dword [edi + 0x33c], 0xffffffff
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x3f
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x40
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
mov dword [ebp - 0x6c], 0x46484245
xor ecx, ecx
mov dword [ebp - 0x68], 0x57424f7c
mov dword [ebp - 0x64], 0x5a404d46
mov byte [ebp - 0x60], 0x23
nop
xor byte [ebp + ecx - 0x6c], 0x23
inc ecx
cmp ecx, 0xd
jb 0x100ad660
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10024700
mov dword [ebp - 4], 0x41
xor ecx, ecx
mov dword [ebp - 0x8c], 0x46484245
mov dword [ebp - 0x88], 0x57424f03
mov dword [ebp - 0x84], 0x5a404d46
mov byte [ebp - 0x80], 0x23
nop word [eax + eax]
xor byte [ebp + ecx - 0x8c], 0x23
inc ecx
cmp ecx, 0xd
jb 0x100ad6b0
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0x42
push eax
lea ecx, [edi + 0x3d0]
call fcn.10024680
lea eax, [ebp - 0xc8]
push eax
lea ecx, [edi + 0x398]
call fcn.10024680
mov dword [edi + 0x3cc], 0xffffffff
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x43
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x44
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x360]
mov dword [eax + 0x8c], 0x100278f0
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
xor eax, eax
mov dword [ebp - 0x38], 0x73006d
mov word [ebp - 0x34], ax
lea ecx, [ebp - 0xc8]
lea eax, [ebp - 0x38]
push eax
call fcn.100b6ac0
mov dword [ebp - 4], 0x45
lea eax, [ebp - 0x70]
movaps xmm0, xmmword [0x100f8660]
lea ecx, [ebp - 0xb0]
pxor xmm0, xmmword [0x100f8bc0]
push eax
movups xmmword [ebp - 0x70], xmm0
mov byte [ebp - 0x60], 0
call fcn.10024700
push 0x100f6690
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x46
call fcn.10024700
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0x47
push eax
lea ecx, [edi + 0x428]
call fcn.10024680
lea eax, [ebp - 0xc8]
mov byte [edi + 0x459], 0
mov dword [edi + 0x4a8], 0
lea ecx, [edi + 0x490]
mov dword [edi + 0x400], 8
mov dword [edi + 0x404], 8
mov dword [edi + 0x464], 0x42480000
mov dword [edi + 0x468], 0x447a0000
mov dword [edi + 0x460], 0x43480000
mov dword [edi + 0x474], 0
mov dword [edi + 0x46c], 0x42480000
push eax
call fcn.100b6a90
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x48
call fcn.100246b0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x49
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x4a
call fcn.10043bb0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x3f0]
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
mov dword [ebp - 0x30], 0x4c575642
xor ecx, ecx
mov dword [ebp - 0x2c], 0x46404042
mov word [ebp - 0x28], 0x5753
mov byte [ebp - 0x26], 0x23
nop
xor byte [ebp + ecx - 0x30], 0x23
inc ecx
cmp ecx, 0xb
jb 0x100ad8e0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10024700
mov dword [ebp - 4], 0x4b
xor ecx, ecx
mov dword [ebp - 0x50], 0x4c575642
mov dword [ebp - 0x4c], 0x4040420e
mov dword [ebp - 0x48], 0x23575346
nop dword [eax + eax]
xor byte [ebp + ecx - 0x50], 0x23
inc ecx
cmp ecx, 0xc
jb 0x100ad920
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x4c
push eax
lea ecx, [edi + 0x4e4]
call fcn.10024680
lea eax, [ebp - 0xb0]
mov byte [edi + 0x515], 1
push eax
lea ecx, [edi + 0x51c]
call fcn.10024680
mov byte [edi + 0x518], 0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x4d
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x4e
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x4ac]
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
movaps xmm0, xmmword [0x100f8660]
lea eax, [ebp - 0x70]
pxor xmm0, xmmword [0x100f8c00]
lea ecx, [ebp - 0xc8]
push eax
lea esi, [edi + 0x534]
mov byte [ebp - 0x60], 0
movups xmmword [ebp - 0x70], xmm0
call fcn.10024700
mov dword [ebp - 4], 0x4f
mov ecx, 0x10
movaps xmm0, xmmword [0x100f8660]
pxor xmm0, xmmword [0x100f8bf0]
mov dword [ebp - 0x88], 0xe4d4a03
mov dword [ebp - 0x84], 0x464e4244
mov byte [ebp - 0x80], 0x23
movups xmmword [ebp - 0x98], xmm0
nop dword [eax]
xor byte [ebp + ecx - 0x98], 0x23
inc ecx
cmp ecx, 0x19
jb 0x100ada40
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x50
push eax
lea ecx, [edi + 0x56c]
call fcn.10024680
lea eax, [ebp - 0xb0]
mov byte [edi + 0x59d], 1
push eax
lea ecx, [edi + 0x5a4]
call fcn.10024680
mov byte [edi + 0x5a0], 0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x51
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x52
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
mov dword [ebp - 0x70], 0x47444251
xor ecx, ecx
mov dword [ebp - 0x6c], 0x7c4f4f4c
mov dword [ebp - 0x68], 0x40514c45
mov word [ebp - 0x64], 0x2346
xor byte [ebp + ecx - 0x70], 0x23
inc ecx
cmp ecx, 0xe
jb 0x100adb14
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10024700
mov dword [ebp - 4], 0x53
xor ecx, ecx
mov dword [ebp - 0x90], 0x47444251
mov dword [ebp - 0x8c], 0x34f4f4c
mov dword [ebp - 0x88], 0x40514c45
mov word [ebp - 0x84], 0x2346
nop
xor byte [ebp + ecx - 0x90], 0x23
inc ecx
cmp ecx, 0xe
jb 0x100adb60
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x54
push eax
lea ecx, [edi + 0x5f4]
call fcn.10024680
lea eax, [ebp - 0xb0]
mov byte [edi + 0x625], 1
push eax
lea ecx, [edi + 0x62c]
call fcn.10024680
mov byte [edi + 0x628], 0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x55
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x56
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x5bc]
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x6b6e6172
push eax
lea ecx, [ebp - 0xc8]
mov word [ebp - 0x34], 0x73
lea esi, [edi + 0x754]
call fcn.10024700
mov dword [ebp - 4], 0x57
mov ecx, 0x10
movaps xmm0, xmmword [0x100f8660]
pxor xmm0, xmmword [0x100f8950]
mov dword [ebp - 0x68], 0x5103444d
mov dword [ebp - 0x64], 0x50484d42
mov byte [ebp - 0x60], 0x23
movups xmmword [ebp - 0x78], xmm0
xor byte [ebp + ecx - 0x78], 0x23
inc ecx
cmp ecx, 0x19
jb 0x100adc70
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x58
push eax
lea ecx, [edi + 0x78c]
call fcn.10024680
lea eax, [ebp - 0xb0]
mov byte [edi + 0x7bd], 1
push eax
lea ecx, [edi + 0x7c4]
call fcn.10024680
mov byte [edi + 0x7c0], 0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x59
call fcn.100246b0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 0x5a
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x18]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
movaps xmm0, xmmword [0x100f8660]
lea esi, [edi + 0x7dc]
pxor xmm0, xmmword [0x100f8b50]
mov ecx, 0x10
mov dword [ebp - 0x64], 0x23505142
movups xmmword [ebp - 0x74], xmm0
xor byte [ebp + ecx - 0x74], 0x23
inc ecx
cmp ecx, 0x14
jb 0x100add46
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10024700
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], 0x5b
push eax
lea ecx, [esi + 0x6c]
call fcn.10024680
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 0x5c
call fcn.100246b0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], esi
mov dword [edi + 0x840], 0x10028480
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x14]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0x18]
call fcn.100384e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret