Function at 0xac86d8
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x1006ca1e
push eax
mov eax, 0x12cc
mov dword fs:[0], esp
call fcn.00b01cb8
push ebx
mov ebx, dword [esp + 0x12f8]
push ebp
push esi
cmp ebx, 9
push edi
jge 0xac8711
mov eax, 0x37
jmp 0xac9d36
mov edx, dword [esp + 0x1300]
xor eax, eax
xor ecx, ecx
mov al, byte [edx]
mov cl, byte [edx + 1]
shl eax, 8
add ecx, eax
cmp ecx, 1
je 0xac8735
mov eax, 0x37
jmp 0xac9d36
movsx eax, byte [edx + 2]
mov dword [esp + 0x14], eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xddc]
rep stosd dword es:[edi], eax
mov al, byte [edx + 4]
xor ecx, ecx
mov cl, byte [edx + 3]
lea esi, [edx + 5]
shl ecx, 8
add eax, ecx
lea edi, [esp + 0xddc]
mov ecx, eax
add eax, 5
mov ebp, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
jle 0xac8785
mov eax, 0x37
jmp 0xac9d36
xor ecx, ecx
mov cl, byte [eax + edx]
inc eax
mov esi, ecx
xor ecx, ecx
mov cl, byte [eax + edx]
mov ebp, ecx
shl esi, 8
add ebp, esi
inc eax
lea esi, [eax + edx]
add eax, ebp
cmp eax, ebx
jle 0xac87ad
mov eax, 0x37
jmp 0xac9d36
mov eax, dword [esp + 0x14]
test eax, eax
jne 0xac8be0
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x6dc]
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [esp + 0x75c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x130c]
test eax, eax
jne 0xac8945
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xcdc]
lea edx, [esp + 0xbdc]
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [esp + 0xbdc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x12f8]
push edx
push eax
call fcn.00afcc48
add esp, 8
lea ecx, [esp + 0xcdc]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x1007b5b0
call fcn.00b0e737
push ecx
mov dword [esp + 0x12f0], 0
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x1007b5a0
call fcn.00b0e737
push ecx
lea edx, [esp + 0xbec]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov byte [esp + 0x12f8], 1
call fcn.00b0e737
mov dword [esp + 0x12f4], 0xffffffff
call fcn.00abddb8
lea eax, [esp + 0xcec]
lea ecx, [esp + 0x6ec]
push eax
push 0x1007b0d4
push ecx
call fcn.00b01669
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xcf8]
lea edx, [esp + 0xbf8]
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [esp + 0xbf8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1318]
push edx
push eax
call fcn.00afcc48
add esp, 0x24
lea ecx, [esp + 0xcdc]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x1007b5b0
call fcn.00b0e737
push ecx
mov dword [esp + 0x12f0], 2
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0x1007b5a0
call fcn.00b0e737
push ecx
lea edx, [esp + 0xbec]
mov ecx, esp
mov dword [esp + 0x5c], esp
push edx
mov byte [esp + 0x12f8], 3
call fcn.00b0e737
call fcn.00abddb8
lea eax, [esp + 0xcec]
push eax
lea ecx, [esp + 0x770]
push 0x1007b0d4
push ecx
call fcn.00b01669
add esp, 0x1c
jmp 0xac89fa
mov eax, dword [0x1007dbb0]
mov dword [esp + 0x14], eax
mov ebx, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x12e4], ebx
mov eax, dword [esp + 0x12f8]
lea edx, [esp + 0x14]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
mov byte [esp + 0x12f0], 5
call fcn.00b0e737
call fcn.00abe0f8
mov edx, dword [esp + 0x1304]
add esp, 8
lea ecx, [esp + 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00b0e737
call fcn.00abe0f8
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x6e4]
push eax
push 0x1007b0d4
push ecx
call fcn.00b01669
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x770]
push edx
push 0x1007b0d4
push eax
call fcn.00b01669
add esp, 0x20
lea ecx, [esp + 0x10]
mov byte [esp + 0x12e4], bl
call fcn.00b0e6c9
lea ecx, [esp + 0x14]
mov dword [esp + 0x12e4], 0xffffffff
call fcn.00b0e6c9
mov ecx, 8
xor eax, eax
lea edi, [esp + 0xbc]
push 1
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x760]
lea edx, [esp + 0x6e0]
push ecx
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0xc8]
push eax
push ecx
lea edi, [esp + 0xdf0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xdf0]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x2c], 0x20
push ecx
push edx
call fcn.00ae3778
test eax, eax
je 0xac8a5e
mov eax, 0x15
jmp 0xac9d36
mov ecx, dword [esp + 0xc8]
lea edi, [esp + 0x7dc]
mov dword [esp + 0x68], ecx
mov ecx, ebp
mov edx, ecx
mov eax, dword [esp + 0xbc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x64], eax
and ecx, 3
lea eax, [esp + 0x64]
rep movsb byte es:[edi], byte [esi]
push 1
push eax
lea ecx, [esp + 0x7e4]
push ebp
push ecx
call fcn.00adc828
mov eax, dword [esp + 0x1308]
mov ecx, 7
lea esi, [esp + 0x7dc]
lea edi, [eax + 0x328]
lea edx, [eax + 0x347]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7fb]
mov dword [edx], ecx
mov ecx, dword [esp + 0x7ff]
movsw word es:[edi], word [esi]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x803]
movsb byte es:[edi], byte [esi]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x807]
lea edi, [eax + 0x2a0]
lea esi, [esp + 0x834]
mov dword [edx + 0xc], ecx
mov cx, word [esp + 0x80b]
mov word [edx + 0x10], cx
mov dl, byte [esp + 0x80d]
mov cl, byte [esp + 0x80e]
mov byte [eax + 0x248], dl
mov edx, dword [esp + 0x810]
mov byte [eax + 0x249], cl
mov ecx, dword [esp + 0x814]
mov dword [eax + 0x24c], edx
mov dword [eax + 0x250], ecx
mov ecx, dword [esp + 0x818]
lea edx, [eax + 0x254]
mov dword [eax + 0x254], ecx
mov ecx, dword [esp + 0x81c]
mov dword [edx + 4], ecx
mov cx, word [esp + 0x820]
mov word [edx + 8], cx
mov cl, byte [esp + 0x822]
mov byte [edx + 0xa], cl
mov ecx, dword [esp + 0x824]
mov dword [eax + 0x274], ecx
mov cl, byte [esp + 0x82c]
mov byte [eax + 0x27c], cl
mov ecx, dword [esp + 0x830]
mov dl, byte [esp + 0x823]
mov dword [eax + 0x29c], ecx
mov ecx, 8
mov byte [eax + 0x273], dl
mov edx, dword [esp + 0x828]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x85c]
mov dword [eax + 0x278], edx
mov dl, byte [esp + 0x82d]
mov dword [eax + 0x298], ecx
mov byte [eax + 0x27d], dl
mov edx, dword [esp + 0x858]
movsb byte es:[edi], byte [esi]
mov dword [eax + 0x294], edx
jmp 0xac9d34
cmp ebx, 7
je 0xac9d34
mov edx, dword [esp + 0x12ec]
lea ecx, [esp + 0x20]
push edx
call fcn.00b0e737
mov eax, dword [esp + 0x12f0]
lea ecx, [esp + 0x38]
push eax
mov dword [esp + 0x12e8], 6
call fcn.00b0e737
mov ecx, dword [esp + 0x12f4]
mov byte [esp + 0x12e4], 7
push ecx
lea ecx, [esp + 0x28]
call fcn.00b0e737
lea edx, [esp + 0xddc]
lea ecx, [esp + 0x3c]
push edx
mov byte [esp + 0x12e8], 8
call fcn.00b0e737
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12e8], 9
call fcn.00b0e737
mov eax, dword [esp + 0x28]
mov byte [esp + 0x12e4], 0xa
mov esi, dword [eax - 8]
cmp esi, 0x53
jge 0xac8cd0
lea ecx, [esp + 0x28]
mov byte [esp + 0x12e4], 9
call fcn.00b0e6c9
lea ecx, [esp + 0x3c]
mov byte [esp + 0x12e4], 8
call fcn.00b0e6c9
lea ecx, [esp + 0x24]
mov byte [esp + 0x12e4], 7
call fcn.00b0e6c9
lea ecx, [esp + 0x38]
mov byte [esp + 0x12e4], 6
call fcn.00b0e6c9
lea ecx, [esp + 0x20]
mov dword [esp + 0x12e4], 0xffffffff
call fcn.00b0e6c9
mov eax, 0x37
jmp 0xac9d36
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x9c]
push 0x1a
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
stosb byte es:[edi], al
call fcn.00b0cd8d
mov edx, dword [eax]
lea eax, [esp + 0x9c]
push edx
push 0x1007b0d4
push eax
call fcn.00b01669
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.00b0e6c9
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0xdc]
sub esi, 0x16
rep stosd dword es:[edi], eax
mov ecx, esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x28]
mov edx, ecx
lea edi, [esp + 0xdc]
mov byte [esp + 0xb2], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x1007dbb0]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12e4], 0xb
push ecx
call fcn.00abd8a8
mov eax, dword [0x1007fa6c]
add esp, 4
test eax, eax
jle 0xac8e63
push 0x1007f2e0
lea ecx, [esp + 0x14]
call fcn.00b0e737
mov bl, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x12e4], bl
call fcn.00b0d243
push 0x20
lea ecx, [esp + 0x14]
call fcn.00b0eb44
test eax, eax
jle 0xac8dd4
lea edx, [esp + 0x18]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.00b0ce09
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x12e8], 0xd
call fcn.00b0e7b6
mov byte [esp + 0x12e4], bl
lea ecx, [esp + 0x18]
jmp 0xac8e2a
lea eax, [esp + 0x44]
push 1
push eax
lea ecx, [esp + 0x18]
call fcn.00b0ce09
push 0x1007b37c
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0x12f0], 0xe
call fcn.00b0e912
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x12e8], 0xf
call fcn.00b0e7b6
lea ecx, [esp + 0x18]
mov byte [esp + 0x12e4], 0xe
call fcn.00b0e6c9
mov byte [esp + 0x12e4], bl
lea ecx, [esp + 0x44]
call fcn.00b0e6c9
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x34]
push 0x1007b36c
push ecx
call fcn.00b0d1e4
add esp, 0x10
lea ecx, [esp + 0x10]
mov byte [esp + 0x12e4], 0xb
call fcn.00b0e6c9
mov eax, dword [0x1007fa6c]
test eax, eax
jne 0xac8e83
lea edx, [esp + 0x2c]
lea eax, [esp + 0x20]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00b0e43e
call fcn.00abce18
add esp, 8
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x4c], esp
push edx
call fcn.00b0e43e
call fcn.00ac4c68
mov ebp, eax
call fcn.00ac5b28
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], eax
push ecx
mov dword [esp + 0x64], eax
push 1
mov dword [esp + 0x6c], eax
call fcn.00ac62e8
lea edx, [esp + 0x60]
mov byte [esp + 0x6c], 0
push edx
call fcn.00b0cab8
mov eax, dword [0x1007dbb0]
add esp, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x4c]
push 5
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x12ec], 0x12
call fcn.00b0cd8d
mov esi, eax
lea ecx, [esp + 0x18]
push 5
mov bl, 0x13
push ecx
lea ecx, [esp + 0x28]
mov byte [esp + 0x12ec], bl
call fcn.00b0ce09
push esi
lea edx, [esp + 0x48]
push eax
push edx
mov byte [esp + 0x12f0], 0x14
call fcn.00b0e8ac
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x12e8], 0x15
call fcn.00b0e7b6
lea ecx, [esp + 0x44]
mov byte [esp + 0x12e4], 0x14
call fcn.00b0e6c9
lea ecx, [esp + 0x18]
mov byte [esp + 0x12e4], bl
call fcn.00b0e6c9
lea ecx, [esp + 0x4c]
mov byte [esp + 0x12e4], 0x12
call fcn.00b0e6c9
lea eax, [esp + 0x50]
push 5
push eax
lea ecx, [esp + 0x28]
call fcn.00b0cd8d
mov esi, eax
lea ecx, [esp + 0x44]
push 5
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x12ec], 0x16
call fcn.00b0ce09
push esi
lea edx, [esp + 0x50]
push eax
push edx
mov byte [esp + 0x12f0], 0x17
call fcn.00b0e8ac
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x12e8], 0x18
call fcn.00b0e7b6
lea ecx, [esp + 0x4c]
mov byte [esp + 0x12e4], 0x17
call fcn.00b0e6c9
lea ecx, [esp + 0x44]
mov byte [esp + 0x12e4], 0x16
call fcn.00b0e6c9
lea ecx, [esp + 0x50]
mov byte [esp + 0x12e4], 0x12
call fcn.00b0e6c9
lea ecx, [esp + 0x1c]
call fcn.00b0eb91
lea ecx, [esp + 0x34]
call fcn.00b0eb91
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x2dc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2dc]
push eax
push 0x1007b0d4
push ecx
call fcn.00b01669
lea edi, [esp + 0x2e8]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
lea edx, [esp + 0x6c]
lea eax, [esp + 0x2dc]
not ecx
push edx
push 0
dec ecx
push 0
push ecx
push eax
call fcn.00ad7fa8
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x2dc]
push eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x2e0]
push 0x20
push ecx
lea edx, [esp + 0x78]
push 0x10
push edx
call fcn.00adc7d8
xor eax, eax
cmp byte [esp + eax + 0x2dc], 0x2b
jne 0xac9092
mov byte [esp + eax + 0x2dc], 0x2a
inc eax
cmp eax, 0x18
jl 0xac9080
lea eax, [esp + 0x2dc]
lea ecx, [esp + 0x30]
push eax
call fcn.00b0e806
mov al, byte [esp + 0xdc]
cmp al, 0x41
jl 0xac90c3
cmp al, 0x5a
jg 0xac90c3
add al, 0x20
mov byte [esp + 0xdc], al
jmp 0xac90fe
cmp al, 0x61
jl 0xac90d6
cmp al, 0x7a
jg 0xac90d6
add al, 0xe0
mov byte [esp + 0xdc], al
jmp 0xac90fe
cmp al, 0x2b
jne 0xac90e4
mov byte [esp + 0xdc], 0x3d
jmp 0xac90fe
cmp al, 0x3d
jne 0xac90f2
mov byte [esp + 0xdc], 0x2f
jmp 0xac90fe
cmp al, 0x2f
jne 0xac90fe
mov byte [esp + 0xdc], 0x2b
mov ecx, dword [esp + 0x14]
mov al, byte [esp + ecx + 0xda]
lea ecx, [esp + ecx + 0xda]
cmp al, 0x41
jl 0xac911e
cmp al, 0x5a
jg 0xac911e
add al, 0x20
mov byte [ecx], al
jmp 0xac9145
cmp al, 0x61
jl 0xac912c
cmp al, 0x7a
jg 0xac912c
sub al, 0x20
mov byte [ecx], al
jmp 0xac9145
cmp al, 0x2b
jne 0xac9135
mov byte [ecx], 0x3d
jmp 0xac9145
cmp al, 0x3d
jne 0xac913e
mov byte [ecx], 0x2f
jmp 0xac9145
cmp al, 0x2f
jne 0xac9145
mov byte [ecx], 0x2b
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0xedc]
push 1
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xee0]
push 0x400
push edx
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.00adc7d8
mov edx, dword [0x1007dbb0]
mov ebx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x24]
mov ecx, 6
mov esi, 0x1007b938
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x48]
push 0x1007bc80
push edx
mov byte [esp + 0x12f4], 0x19
mov byte [esp + 0xa8], 0
call fcn.00b0d1e4
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
add esp, 0x10
mov esi, 2
lea edi, [ecx + 2]
sub eax, ecx
mov cl, byte [edi]
mov dl, byte [esp + esi + 0x80]
xor dl, cl
mov cl, byte [eax + edi]
xor dl, cl
mov byte [esp + esi + 0x80], dl
inc esi
inc edi
cmp esi, 0x17
jl 0xac91d3
lea eax, [esp + 0x80]
push 1
push eax
lea ecx, [esp + 0xee4]
push ebx
push ecx
call fcn.00adc8d8
mov ecx, ebx
lea esi, [esp + 0xedc]
mov edx, ecx
lea edi, [esp + 0xdc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xdc]
or ecx, 0xffffffff
mov byte [esp + ebx + 0xdc], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x2dc]
mov ebx, ecx
mov ecx, 0x100
rep stosd dword es:[edi], eax
mov eax, 0x899c0f61
mov ecx, dword [esp + 0x34]
mul ebp
mov eax, dword [esp + 0x30]
sub ebp, edx
shr ebp, 1
add ebp, edx
mov edx, dword [esp + 0x1c]
shr ebp, 9
mov esi, ebp
push eax
push ecx
mov ecx, dword [esp + 0x18]
push esi
lea eax, [esp + 0xe8]
push edx
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x68]
push ecx
push edx
push eax
lea ecx, [esp + 0x2fc]
push 0x1007bc6c
push ecx
mov dword [esp + 0x40], ebx
call fcn.00b01669
lea edi, [esp + 0x304]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x28
repne scasb al, byte es:[edi]
lea edx, [esp + 0x6c]
lea eax, [esp + 0x2dc]
not ecx
push edx
push 0xb
dec ecx
push 0x1007bc58
push ecx
push eax
call fcn.00ad7fa8
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x2dc]
push eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x2e0]
push 0x20
push ecx
lea edx, [esp + 0x78]
push 0x10
push edx
call fcn.00adc7d8
mov byte [esp + 0x2f2], 0
xor eax, eax
cmp byte [esp + eax + 0x2dc], 0x2b
jne 0xac9310
mov byte [esp + eax + 0x2dc], 0x40
inc eax
cmp eax, 0x16
jl 0xac92fe
lea edi, [esp + 0x9c]
lea eax, [esp + 0x2dc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0xac9348
test cl, cl
je 0xac9344
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0xac9348
add eax, 2
add edi, 2
test cl, cl
jne 0xac9324
xor eax, eax
jmp 0xac934d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0xac9515
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x2dc]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x54]
push eax
call fcn.00b029b4
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
push ecx
push edx
mov edx, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0xec]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x6c]
push edx
push eax
push ecx
lea edx, [esp + 0x300]
push 0x1007bc6c
push edx
call fcn.00b01669
add esp, 0x2c
lea eax, [esp + 0x6c]
lea edi, [esp + 0x2dc]
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push 0xb
dec ecx
push 0x1007bc58
push ecx
lea ecx, [esp + 0x2ec]
push ecx
call fcn.00ad7fa8
xor eax, eax
mov ecx, 8
lea edi, [esp + 0x2dc]
push eax
lea edx, [esp + 0x2e0]
push 0x20
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x78]
push 0x10
push eax
call fcn.00adc7d8
mov byte [esp + 0x2f2], 0
xor eax, eax
cmp byte [esp + eax + 0x2dc], 0x2b
jne 0xac9419
mov byte [esp + eax + 0x2dc], 0x40
inc eax
cmp eax, 0x16
jl 0xac9407
lea esi, [esp + 0x9c]
lea eax, [esp + 0x2dc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0xac9451
test cl, cl
je 0xac944d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0xac9451
add eax, 2
add esi, 2
test cl, cl
jne 0xac942d
xor eax, eax
jmp 0xac9456
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0xac9515
lea ecx, [esp + 0x40]
mov byte [esp + 0x12e4], 0x12
call fcn.00b0e6c9
lea ecx, [esp + 0x30]
mov byte [esp + 0x12e4], 0x11
call fcn.00b0e6c9
lea ecx, [esp + 0x34]
mov byte [esp + 0x12e4], 0x10
call fcn.00b0e6c9
lea ecx, [esp + 0x1c]
mov byte [esp + 0x12e4], 0xb
call fcn.00b0e6c9
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12e4], 0xa
call fcn.00b0e6c9
lea ecx, [esp + 0x28]
mov byte [esp + 0x12e4], 9
call fcn.00b0e6c9
lea ecx, [esp + 0x3c]
mov byte [esp + 0x12e4], 8
call fcn.00b0e6c9
lea ecx, [esp + 0x24]
mov byte [esp + 0x12e4], 7
call fcn.00b0e6c9
lea ecx, [esp + 0x38]
mov byte [esp + 0x12e4], 6
call fcn.00b0e6c9
lea ecx, [esp + 0x20]
mov dword [esp + 0x12e4], 0xffffffff
call fcn.00b0e6c9
mov eax, 0x37
jmp 0xac9d36
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x2dc]
xor ebp, ebp
rep stosd dword es:[edi], eax
xor edi, edi
test ebx, ebx
jle 0xac95c9
mov dword [esp + 0x14], ebx
mov al, byte [esp + edi + 0xdc]
cmp al, 0x30
jl 0xac954c
cmp al, 0x39
jg 0xac954c
movsx eax, al
sub eax, 0x30
jmp 0xac9572
cmp al, 0x61
jl 0xac955c
cmp al, 0x7a
jg 0xac955c
movsx eax, al
sub eax, 0x57
jmp 0xac9572
cmp al, 0x41
jl 0xac945e
cmp al, 0x5a
jg 0xac945e
movsx eax, al
sub eax, 0x37
test eax, eax
je 0xac945e
cmp dword [esp + 0x14], 2
jl 0xac945e
test eax, eax
jbe 0xac95af
mov dl, byte [esp + edi + 0xdd]
mov bl, byte [esp + edi + 0xde]
lea ecx, [esp + ebp + 0x2dd]
mov esi, eax
mov byte [ecx - 1], dl
mov byte [ecx], bl
add ecx, 2
dec esi
jne 0xac95a0
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add edi, 3
sub ecx, 3
cmp edi, ebx
lea ebp, [ebp + eax*2]
mov dword [esp + 0x14], ecx
jl 0xac9535
mov ecx, 0x80
lea esi, [esp + 0x2dc]
lea edi, [esp + 0xdc]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x80
lea edi, [esp + 0x2dc]
rep stosd dword es:[edi], eax
xor edi, edi
lea ebx, [esp + 0x2dc]
xor ecx, ecx
xor edx, edx
lea esi, [esp + edi + 0xdc]
mov al, byte [edx + esi]
cmp al, 0x30
jl 0xac961d
cmp al, 0x39
jg 0xac961d
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9648
cmp al, 0x61
jl 0xac9631
cmp al, 0x7a
jg 0xac9631
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9648
cmp al, 0x41
jl 0xac9645
cmp al, 0x5a
jg 0xac9645
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9648
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9602
mov byte [ebx], cl
add edi, 2
inc ebx
cmp edi, 0x3c
jl 0xac95f7
mov ebp, dword [esp + 0x1308]
lea ecx, [esp + 0x2dc]
push ecx
push 0x1007b0d4
lea edx, [ebp + 0x328]
push edx
call fcn.00b01669
add esp, 0xc
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x118]
cmp al, 0x30
jl 0xac969f
cmp al, 0x39
jg 0xac969f
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac96ca
cmp al, 0x61
jl 0xac96b3
cmp al, 0x7a
jg 0xac96b3
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac96ca
cmp al, 0x41
jl 0xac96c7
cmp al, 0x5a
jg 0xac96c7
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac96ca
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9680
test cl, 0x80
je 0xac96de
mov byte [ebp + 0x248], 0
jmp 0xac96e4
mov byte [ebp + 0x248], cl
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x11a]
cmp al, 0x30
jl 0xac9707
cmp al, 0x39
jg 0xac9707
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9732
cmp al, 0x61
jl 0xac971b
cmp al, 0x7a
jg 0xac971b
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9732
cmp al, 0x41
jl 0xac972f
cmp al, 0x5a
jg 0xac972f
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9732
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac96e8
mov byte [ebp + 0x249], cl
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x11c]
cmp al, 0x30
jl 0xac9761
cmp al, 0x39
jg 0xac9761
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac978c
cmp al, 0x61
jl 0xac9775
cmp al, 0x7a
jg 0xac9775
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac978c
cmp al, 0x41
jl 0xac9789
cmp al, 0x5a
jg 0xac9789
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac978c
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac9742
mov dword [ebp + 0x24c], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x124]
cmp al, 0x30
jl 0xac97bb
cmp al, 0x39
jg 0xac97bb
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac97e6
cmp al, 0x61
jl 0xac97cf
cmp al, 0x7a
jg 0xac97cf
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac97e6
cmp al, 0x41
jl 0xac97e3
cmp al, 0x5a
jg 0xac97e3
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac97e6
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac979c
mov dword [ebp + 0x250], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x12c]
cmp al, 0x30
jl 0xac9815
cmp al, 0x39
jg 0xac9815
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9840
cmp al, 0x61
jl 0xac9829
cmp al, 0x7a
jg 0xac9829
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9840
cmp al, 0x41
jl 0xac983d
cmp al, 0x5a
jg 0xac983d
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9840
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac97f6
mov byte [ebp + 0x273], cl
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x12e]
cmp al, 0x30
jl 0xac986f
cmp al, 0x39
jg 0xac986f
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac989a
cmp al, 0x61
jl 0xac9883
cmp al, 0x7a
jg 0xac9883
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac989a
cmp al, 0x41
jl 0xac9897
cmp al, 0x5a
jg 0xac9897
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac989a
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac9850
mov dword [ebp + 0x274], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x136]
cmp al, 0x30
jl 0xac98c9
cmp al, 0x39
jg 0xac98c9
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac98f4
cmp al, 0x61
jl 0xac98dd
cmp al, 0x7a
jg 0xac98dd
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac98f4
cmp al, 0x41
jl 0xac98f1
cmp al, 0x5a
jg 0xac98f1
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac98f4
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac98aa
mov dword [ebp + 0x278], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x13e]
cmp al, 0x30
jl 0xac9923
cmp al, 0x39
jg 0xac9923
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac994e
cmp al, 0x61
jl 0xac9937
cmp al, 0x7a
jg 0xac9937
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac994e
cmp al, 0x41
jl 0xac994b
cmp al, 0x5a
jg 0xac994b
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac994e
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9904
mov byte [ebp + 0x27c], cl
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x140]
cmp al, 0x30
jl 0xac997d
cmp al, 0x39
jg 0xac997d
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac99a8
cmp al, 0x61
jl 0xac9991
cmp al, 0x7a
jg 0xac9991
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac99a8
cmp al, 0x41
jl 0xac99a5
cmp al, 0x5a
jg 0xac99a5
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac99a8
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac995e
mov byte [ebp + 0x27d], cl
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x142]
cmp al, 0x30
jl 0xac99d7
cmp al, 0x39
jg 0xac99d7
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9a02
cmp al, 0x61
jl 0xac99eb
cmp al, 0x7a
jg 0xac99eb
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9a02
cmp al, 0x41
jl 0xac99ff
cmp al, 0x5a
jg 0xac99ff
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9a02
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac99b8
mov dword [ebp + 0x29c], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x14a]
cmp al, 0x30
jl 0xac9a31
cmp al, 0x39
jg 0xac9a31
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9a5c
cmp al, 0x61
jl 0xac9a45
cmp al, 0x7a
jg 0xac9a45
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9a5c
cmp al, 0x41
jl 0xac9a59
cmp al, 0x5a
jg 0xac9a59
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9a5c
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac9a12
mov dword [ebp + 0x294], ecx
xor ecx, ecx
xor edx, edx
mov al, byte [esp + edx + 0x152]
cmp al, 0x30
jl 0xac9a8b
cmp al, 0x39
jg 0xac9a8b
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9ab6
cmp al, 0x61
jl 0xac9a9f
cmp al, 0x7a
jg 0xac9a9f
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9ab6
cmp al, 0x41
jl 0xac9ab3
cmp al, 0x5a
jg 0xac9ab3
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9ab6
shl ecx, 4
inc edx
cmp edx, 8
jl 0xac9a6c
mov dword [ebp + 0x298], ecx
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x2dc]
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x2dc]
xor esi, esi
xor ecx, ecx
xor edx, edx
lea edi, [esp + esi + 0x15a]
mov al, byte [edx + edi]
cmp al, 0x30
jl 0xac9b01
cmp al, 0x39
jg 0xac9b01
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9b2c
cmp al, 0x61
jl 0xac9b15
cmp al, 0x7a
jg 0xac9b15
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9b2c
cmp al, 0x41
jl 0xac9b29
cmp al, 0x5a
jg 0xac9b29
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9b2c
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9ae6
mov byte [ebx], cl
add esi, 2
inc ebx
cmp esi, 0x14
jl 0xac9adb
lea ecx, [esp + 0x2dc]
lea edx, [ebp + 0x254]
push ecx
push 0x1007b0d4
push edx
call fcn.00b01669
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x2e8]
add esp, 0xc
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x2dc]
xor esi, esi
xor ecx, ecx
xor edx, edx
lea edi, [esp + esi + 0x16e]
mov al, byte [edx + edi]
cmp al, 0x30
jl 0xac9b98
cmp al, 0x39
jg 0xac9b98
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9bc3
cmp al, 0x61
jl 0xac9bac
cmp al, 0x7a
jg 0xac9bac
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9bc3
cmp al, 0x41
jl 0xac9bc0
cmp al, 0x5a
jg 0xac9bc0
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9bc3
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9b7d
mov byte [ebx], cl
add esi, 2
inc ebx
cmp esi, 0x22
jl 0xac9b72
lea ecx, [esp + 0x2dc]
lea edx, [ebp + 0x347]
push ecx
push 0x1007b0d4
push edx
call fcn.00b01669
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x2e8]
add esp, 0xc
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x2dc]
xor esi, esi
xor ecx, ecx
xor edx, edx
lea edi, [esp + esi + 0x190]
mov al, byte [edx + edi]
cmp al, 0x30
jl 0xac9c2f
cmp al, 0x39
jg 0xac9c2f
add ecx, 0xffffffd
movsx eax, al
shl ecx, 4
add ecx, eax
jmp 0xac9c5a
cmp al, 0x61
jl 0xac9c43
cmp al, 0x7a
jg 0xac9c43
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x57]
jmp 0xac9c5a
cmp al, 0x41
jl 0xac9c57
cmp al, 0x5a
jg 0xac9c57
movsx eax, al
shl ecx, 4
lea ecx, [ecx + eax - 0x37]
jmp 0xac9c5a
shl ecx, 4
inc edx
cmp edx, 2
jl 0xac9c14
mov byte [ebx], cl
add esi, 2
inc ebx
cmp esi, 0x40
jl 0xac9c09
lea ecx, [esp + 0x2dc]
add ebp, 0x2a0
push ecx
push 0x1007b0d4
push ebp
call fcn.00b01669
add esp, 0xc
lea ecx, [esp + 0x40]
mov byte [esp + 0x12e4], 0x12
call fcn.00b0e6c9
lea ecx, [esp + 0x30]
mov byte [esp + 0x12e4], 0x11
call fcn.00b0e6c9
lea ecx, [esp + 0x34]
mov byte [esp + 0x12e4], 0x10
call fcn.00b0e6c9
lea ecx, [esp + 0x1c]
mov byte [esp + 0x12e4], 0xb
call fcn.00b0e6c9
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12e4], 0xa
call fcn.00b0e6c9
lea ecx, [esp + 0x28]
mov byte [esp + 0x12e4], 9
call fcn.00b0e6c9
lea ecx, [esp + 0x3c]
mov byte [esp + 0x12e4], 8
call fcn.00b0e6c9
lea ecx, [esp + 0x24]
mov byte [esp + 0x12e4], 7
call fcn.00b0e6c9
lea ecx, [esp + 0x38]
mov byte [esp + 0x12e4], 6
call fcn.00b0e6c9
lea ecx, [esp + 0x20]
mov dword [esp + 0x12e4], 0xffffffff
call fcn.00b0e6c9
xor eax, eax
mov ecx, dword [esp + 0x12dc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x12d8
ret