Function at 0x1009c27e
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10145da2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x508
push ebx
push esi
mov ebx, ecx
mov dword [esp + 0x90], 1
push edi
mov edi, edx
lea ecx, [esp + 0x408]
push ebx
lea edx, [esp + 0x98]
call fcn.10032cfe
pop ecx
and dword [esp + 0x51c], 0
xor ecx, ecx
mov dword [esp + 0x170], 0x6c067007
xor esi, esi
mov dword [esp + 0x174], 0x7a097304
mov dword [esp + 0x178], 0x70007c05
mov dword [esp + 0x17c], 0x87017203
mov dword [esp + 0x180], 0x2778103
mov word [esp + 0x184], 0x885
mov byte [esp + 0x186], 0x81
cmp ecx, 0x10
jne 0x1009c328
push 3
pop esi
push 0x11
pop ecx
jmp 0x1009c35a
movzx eax, byte [esp + ecx + 0x171]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c34b
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x170]
mov byte [esp + eax + 0x2d8], dl
add ecx, 2
cmp ecx, 0x17
jb 0x1009c31b
lea eax, [esp + 0x2d8]
mov byte [esp + 0x2e2], 0
push eax
lea ecx, [esp + 0x39c]
call fcn.1001c44c
push eax
mov ecx, edi
mov byte [esp + 0x520], 1
call fcn.1001d839
push 0
mov esi, eax
mov byte [esp + 0x520], 0
push 1
lea ecx, [esp + 0x3a0]
mov dword [esp + 0x64], esi
call fcn.100170c9
xor eax, eax
mov dword [esp + 0x18c], 0x7602750d
lea edi, [esp + 0x2d8]
mov dword [esp + 0x190], 0x73066e00
stosd dword es:[edi], eax
xor edx, edx
mov dword [esp + 0x194], 0x790b6e10
mov dword [esp + 0x198], 0x82086e04
mov dword [esp + 0x19c], 0x7a0a720c
stosd dword es:[edi], eax
mov dword [esp + 0x1a0], 0x80098105
mov dword [esp + 0x1a4], 0x8d0f7807
mov dword [esp + 0x1a8], 0x9303920e
stosw word es:[edi], ax
mov word [esp + 0x1ac], 0x8f01
stosb byte es:[edi], al
movzx ecx, byte [esp + edx + 0x18d]
sub ecx, edx
dec ecx
jns 0x1009c43d
or eax, 0xffffffff
sub eax, ecx
add ecx, 0x100
and eax, 0xffffff00
add ecx, eax
movzx eax, byte [esp + edx + 0x18c]
add edx, 2
mov byte [esp + eax + 0x36c], cl
cmp edx, 0x22
jb 0x1009c41e
lea eax, [esp + 0x36c]
mov byte [esp + 0x37d], 0
push eax
lea ecx, [esp + 0x3f4]
call fcn.1001c44c
xor eax, eax
mov byte [esp + 0x51c], 2
lea edi, [esp + 0x36c]
mov ecx, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x3f0]
push eax
call fcn.1001d839
mov edi, eax
mov dword [esp + 0x30], 0x350a6a00
xor ecx, ecx
mov dword [esp + 0x188], edi
mov dword [esp + 0x34], 0xaadf4604
xor esi, esi
mov dword [esp + 0x38], 0xe898ae78
mov dword [esp + 0x3c], 0x69017602
cmp ecx, 2
jne 0x1009c4cf
push 0xa
pop esi
push esi
pop ecx
jmp 0x1009c4fb
movzx eax, byte [esp + ecx + 0x31]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c4ef
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x1d8], dl
add ecx, 2
cmp ecx, 0x10
jb 0x1009c4c3
lea eax, [esp + 0x1d8]
mov byte [esp + 0x1db], 0
push eax
lea ecx, [esp + 0x358]
call fcn.1001c44c
lea eax, [esp + 0x354]
mov byte [esp + 0x51c], 3
and dword [esp + 0x1d8], 0
mov ecx, edi
push eax
call fcn.1001d839
xor ecx, ecx
mov dword [esp + 0x16c], eax
mov dword [esp + 0xc], 0x67066007
xor esi, esi
mov dword [esp + 0x10], 0x70087b02
mov dword [esp + 0x14], 0x6c037504
mov dword [esp + 0x18], 0x7d017600
mov dword [esp + 0x1c], 0xe334df07
mov dword [esp + 0x20], 0x51b9d40
mov dword [esp + 0x24], 0xa77097a
mov byte [esp + 0x28], 0x88
cmp ecx, 0x10
jne 0x1009c593
push 7
pop esi
push 0x15
pop ecx
jmp 0x1009c5bf
movzx eax, byte [esp + ecx + 0xd]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c5b3
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xc]
mov byte [esp + eax + 0x2fc], dl
add ecx, 2
cmp ecx, 0x1d
jb 0x1009c586
lea eax, [esp + 0x2fc]
mov byte [esp + 0x307], 0
push eax
lea ecx, [esp + 0x328]
call fcn.1001c44c
xor eax, eax
mov byte [esp + 0x51c], 4
lea edi, [esp + 0x2fc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x324]
mov edi, dword [esp + 0x188]
mov ecx, edi
push eax
call fcn.1001d839
push 6
lea ecx, [esp + 0x3b4]
mov dword [esp + 0x1d0], eax
call fcn.1001cd23
mov ecx, dword [esp + 0x16c]
mov byte [esp + 0x51c], 5
call fcn.1001daaf
test al, al
je 0x1009dbd1
call fcn.1001d4bf
test al, al
jne 0x1009dbd1
push 0xf
xor eax, eax
pop ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x2f4], eax
mov byte [esp + 0x2e4], al
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x258], eax
mov byte [esp + 0x248], al
mov byte [esp + 0x51c], 7
mov ecx, eax
mov dword [esp + 0x30], 0xb7077400
mov esi, eax
mov dword [esp + 0x34], 0xe422e69
mov dword [esp + 0x38], 0x3640102
mov word [esp + 0x3c], 0x279
mov byte [esp + 0x3e], 0x73
cmp ecx, 2
jne 0x1009c6b6
push 7
pop esi
push esi
pop ecx
jmp 0x1009c6e2
movzx eax, byte [esp + ecx + 0x31]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c6d6
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x1c4], dl
add ecx, 2
cmp ecx, 0xf
jb 0x1009c6aa
lea eax, [esp + 0x1c4]
mov byte [esp + 0x1c8], 0
push eax
lea ecx, [esp + 0x340]
call fcn.1001c44c
lea eax, [esp + 0x33c]
mov byte [esp + 0x51c], 8
and dword [esp + 0x1c4], 0
mov ecx, edi
push eax
mov byte [esp + 0x1cc], 0
call fcn.1001d99f
test al, al
je 0x1009c7ab
lea eax, [esp + 0x33c]
mov ecx, edi
push eax
call fcn.1001d839
mov ecx, eax
call fcn.1001daa5
test al, al
je 0x1009c7ab
lea eax, [esp + 0x228]
push eax
push ecx
lea eax, [esp + 0x344]
mov ecx, edi
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001d107
push eax
lea ecx, [esp + 0x2e8]
call fcn.100360e4
xor ebx, ebx
lea ecx, [esp + 0x228]
push ebx
push 1
call fcn.100170c9
lea edx, [esp + 0x2e4]
lea ecx, [esp + 0x228]
call fcn.10073344
push eax
lea ecx, [esp + 0x24c]
call fcn.100360e4
jmp 0x1009c814
cmp dword [ebx + 0x14], 8
jb 0x1009c7b3
mov ebx, dword [ebx]
push ebx
call fcn.10124e15
pop ecx
push 0
push 0x20
lea ecx, [esp + 0x250]
call fcn.1001c621
push 0x20
xor edi, edi
pop ebx
cmp dword [esp + 0x25c], 0x10
lea esi, [esp + 0x248]
cmovae esi, dword [esp + 0x248]
call fcn.10124df4
mov byte [esi + edi], al
inc edi
dec ebx
jne 0x1009c7cf
push ecx
lea edx, [esp + 0x24c]
lea ecx, [esp + 0x22c]
call fcn.100732fc
pop ecx
push eax
lea ecx, [esp + 0x2e8]
call fcn.100360e4
push ebx
push 1
lea ecx, [esp + 0x230]
call fcn.100170c9
lea ecx, [esp + 0x3d8]
call fcn.10034197
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x250]
mov byte [esp + 0x524], 9
push eax
lea ecx, [esp + 0x3e4]
call fcn.1001c6d5
sub esp, 0x18
lea eax, [esp + 0x3f0]
mov ecx, esp
push eax
call fcn.10019e3f
lea ecx, [esp + 0x3b0]
call fcn.100e21d7
add esp, 0x18
push 7
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x520], 0xa
call fcn.1001cd23
mov byte [esp + 0x51c], 0xb
mov edx, ebx
mov dword [esp + 0xc], 0x720e7006
mov dword [esp + 0x10], 0x76026e0d
mov dword [esp + 0x14], 0x7b007c0c
mov dword [esp + 0x18], 0x810b6c08
mov dword [esp + 0x1c], 0x89098503
mov dword [esp + 0x20], 0x89017a0a
mov dword [esp + 0x24], 0x890f7c05
mov dword [esp + 0x28], 0x8e048907
movzx ecx, byte [esp + edx + 0xd]
sub ecx, edx
dec ecx
jns 0x1009c8eb
or eax, 0xffffffff
sub eax, ecx
add ecx, 0x100
and eax, 0xffffff00
add ecx, eax
movzx eax, byte [esp + edx + 0xc]
add edx, 2
mov byte [esp + eax + 0x170], cl
cmp edx, 0x20
jb 0x1009c8cf
lea eax, [esp + 0x170]
mov byte [esp + 0x180], bl
push eax
lea ecx, [esp + 0x3c4]
call fcn.1001c44c
xor eax, eax
lea edi, [esp + 0x170]
stosd dword es:[edi], eax
lea ecx, [esp + 0x218]
push 1
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
call fcn.1001cd99
mov eax, ecx
mov byte [esp + 0x51c], 0xd
push eax
push ecx
lea eax, [esp + 0x3c8]
push eax
lea ecx, [esp + 0x2bc]
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
lea ecx, [esp + 0x218]
mov byte [esp + 0x51c], 0xc
call fcn.1001cf38
mov dword [esp + 0x40], 0x6b006903
mov ecx, ebx
mov dword [esp + 0x44], 0x7a026601
mov esi, ebx
mov dword [esp + 0x48], 0x83851f0c
mov dword [esp + 0x4c], 0x9e1dda65
mov dword [esp + 0x50], 0x4c1e78ad
cmp ecx, 8
jne 0x1009c9ab
push 0xc
pop esi
push 0x12
pop ecx
jmp 0x1009c9d7
movzx eax, byte [esp + ecx + 0x41]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c9cb
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x40]
mov byte [esp + eax + 0x1d0], dl
add ecx, 2
cmp ecx, 0x14
jb 0x1009c99e
push ecx
lea edx, [esp + 0x39c]
mov byte [esp + 0x1d8], bl
lea ecx, [esp + 0x29c]
call fcn.100732fc
pop ecx
push eax
lea ecx, [esp + 0x21c]
mov byte [esp + 0x520], 0xe
call fcn.1001cdd8
lea eax, [esp + 0x1d0]
mov byte [esp + 0x51c], 0xf
push eax
lea ecx, [esp + 0x22c]
call fcn.1001c44c
lea ecx, [esp + 0x218]
mov byte [esp + 0x51c], 0x10
push ecx
push ecx
push eax
lea ecx, [esp + 0x2bc]
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
push ebx
push 1
lea ecx, [esp + 0x230]
call fcn.100170c9
lea ecx, [esp + 0x218]
mov byte [esp + 0x51c], 0xe
call fcn.1001cf38
push ebx
push 1
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x524], 0xc
call fcn.100170c9
push dword [esp + 0x16c]
lea eax, [esp + 0x358]
mov dword [esp + 0x1d4], ebx
push ecx
push eax
lea ecx, [esp + 0x2bc]
mov byte [esp + 0x1e0], bl
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
lea ecx, [esp + 0x18c]
call fcn.1001f72c
lea eax, [esp + 0x2b0]
mov byte [esp + 0x51c], 0x11
push eax
lea eax, [esp + 0x424]
push eax
call fcn.1001f747
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x200], ebx
mov dword [esp + 0x204], ebx
lea edx, [esp + 0x408]
mov byte [esp + 0x51c], 0x13
lea ecx, [esp + 0x380]
call fcn.1002edd6
mov byte [esp + 0x51c], 0x14
mov dword [esp + 0x98], 0x7c3a700e
mov dword [esp + 0x9c], 0x76267c0a
mov dword [esp + 0xa0], 0x71393829
mov dword [esp + 0xa4], 0x49058004
mov dword [esp + 0xa8], 0x86248809
mov dword [esp + 0xac], 0x87138b35
mov dword [esp + 0xb0], 0x8f257c1b
mov dword [esp + 0xb4], 0xf127f23
mov dword [esp + 0xb8], 0xc0078997
mov dword [esp + 0xbc], 0x928a936c
mov dword [esp + 0xc0], 0x46301725
mov ecx, ebx
mov dword [esp + 0xc4], 0xaebaf053
mov esi, ebx
mov dword [esp + 0xc8], 0x86114d16
mov dword [esp + 0xcc], 0x971d8f10
mov dword [esp + 0xd0], 0x9903582d
mov dword [esp + 0xd4], 0x8e129022
mov dword [esp + 0xd8], 0x5f0b9814
mov dword [esp + 0xdc], 0x9a289c2f
mov dword [esp + 0xe0], 0xa00fae21
mov dword [esp + 0xe4], 0x6c06a81f
mov dword [esp + 0xe8], 0xb01eae0d
mov dword [esp + 0xec], 0xb815b537
mov dword [esp + 0xf0], 0xb11cac31
mov dword [esp + 0xf4], 0xc033b020
mov dword [esp + 0xf8], 0xc72ab60c
mov dword [esp + 0xfc], 0xc901c730
mov dword [esp + 0x100], 0xbc178607
mov dword [esp + 0x104], 0xca198a1a
mov dword [esp + 0x108], 0x922bce18
mov dword [esp + 0x10c], 0xcd009234
mov dword [esp + 0x110], 0xdd02962e
mov dword [esp + 0x114], 0x9b2cdd27
mov dword [esp + 0x118], 0xde32e608
mov dword [esp + 0x11c], 0xde38d836
cmp ecx, 0x1e
jne 0x1009cca6
push 0x12
pop esi
push 0x2e
pop ecx
jmp 0x1009ccd9
movzx eax, byte [esp + ecx + 0x99]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009ccc9
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x98]
mov word [esp + eax*2 + 0x498], dx
add ecx, 2
cmp ecx, 0x88
jb 0x1009cc99
xor eax, eax
mov dword [esp + 0x98], 0x6642725a
mov word [esp + 0x50e], ax
mov ecx, ebx
mov dword [esp + 0x9c], 0x7b036c4d
mov esi, ebx
mov dword [esp + 0xa0], 0x724a3646
mov dword [esp + 0xa4], 0x700e7d0f
mov dword [esp + 0xa8], 0x3f355627
mov dword [esp + 0xac], 0x7c517821
mov dword [esp + 0xb0], 0x89186e54
mov dword [esp + 0xb4], 0x3f0d9145
mov dword [esp + 0xb8], 0x50264e07
mov dword [esp + 0xbc], 0x5453942a
mov dword [esp + 0xc0], 0x94339d06
mov dword [esp + 0xc4], 0x9d589431
mov dword [esp + 0xc8], 0xa21c960b
mov dword [esp + 0xcc], 0xa70aaa4b
mov dword [esp + 0xd0], 0xaf159d2b
mov dword [esp + 0xd4], 0xb932b125
mov dword [esp + 0xd8], 0x7219ad11
mov dword [esp + 0xdc], 0xb528af1a
mov dword [esp + 0xe0], 0x795db817
mov dword [esp + 0xe4], 0xbf24bb1d
mov dword [esp + 0xe8], 0xb414b422
mov dword [esp + 0xec], 0x613fb64c
mov dword [esp + 0xf0], 0x954fbe04
mov dword [esp + 0xf4], 0x6c3ec137
mov dword [esp + 0xf8], 0xd2018150
mov dword [esp + 0xfc], 0x711f9156
mov dword [esp + 0x100], 0xd023cf39
mov dword [esp + 0x104], 0xd816db05
mov dword [esp + 0x108], 0xda2ed441
mov dword [esp + 0x10c], 0xe734af2f
mov dword [esp + 0x110], 0xb50ce944
mov dword [esp + 0x114], 0xf33ce93a
mov dword [esp + 0x118], 0xe84ed455
mov dword [esp + 0x11c], 0xb75cf352
mov dword [esp + 0x120], 0xab30f702
mov dword [esp + 0x124], 0xf82cee3b
mov dword [esp + 0x128], 0xdf47ff2d
mov dword [esp + 0x12c], 0xd259fa43
mov dword [esp + 0x130], 0xef08dc00
mov dword [esp + 0x134], 0xe040101b
mov dword [esp + 0x138], 0x629de5b
mov dword [esp + 0x13c], 0xc570e12
mov dword [esp + 0x140], 0x1038e15e
mov dword [esp + 0x144], 0x10481d10
mov dword [esp + 0x148], 0xd336be1e
mov dword [esp + 0x14c], 0xda0c2e09
mov dword [esp + 0x150], 0xbda02e7
mov dword [esp + 0x154], 0xac8685bd
mov dword [esp + 0x158], 0x25497c2e
mov dword [esp + 0x15c], 0x203d1c13
mov word [esp + 0x160], 0xfe20
cmp ecx, 0xb6
jne 0x1009cf32
push 0xc
pop esi
add ecx, 0xa
jmp 0x1009cf64
movzx eax, byte [esp + ecx + 0x99]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009cf55
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x98]
mov byte [esp + eax + 0x438], dl
add ecx, 2
cmp ecx, 0xca
jb 0x1009cf22
lea eax, [esp + 0x438]
mov byte [esp + 0x497], bl
push eax
lea ecx, [esp + 0x29c]
call fcn.1001c44c
mov esi, eax
lea eax, [esp + 0x498]
mov byte [esp + 0x51c], 0x15
push eax
lea ecx, [esp + 0x22c]
call fcn.10013e17
mov byte [esp + 0x51c], 0x16
lea ecx, [esp + 0x380]
cmp dword [esp + 0x394], 8
mov edx, esi
cmovae ecx, dword [esp + 0x380]
push ecx
push ebx
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x42c]
push ecx
mov ecx, eax
call fcn.1006577f
add esp, 0x10
lea ecx, [esp + 0x228]
mov esi, eax
push ebx
push 1
call fcn.10014448
push ebx
push 1
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x524], 0x14
call fcn.100170c9
push 0x1e
pop ecx
xor eax, eax
lea edi, [esp + 0x498]
push 0x60
rep stosd dword es:[edi], eax
lea eax, [esp + 0x43c]
push ebx
push eax
call fcn.101209c0
add esp, 0xc
mov ecx, esi
call fcn.10065768
test al, al
je 0x1009db2b
mov ebx, dword [esp + 0x1fc]
cmp ebx, dword [esp + 0x200]
je 0x1009db29
lea ecx, [esp + 0x98]
call fcn.1001b4f5
push 0
lea ecx, [esp + 0x20c]
mov byte [esp + 0x520], 0x17
call fcn.1001cd23
mov byte [esp + 0x51c], 0x18
xor ecx, ecx
mov dword [esp + 0xc], 0x75077606
xor esi, esi
mov dword [esp + 0x10], 0x7b056604
mov dword [esp + 0x14], 0x79036e08
mov dword [esp + 0x18], 0x34127601
mov dword [esp + 0x1c], 0x6600107d
mov dword [esp + 0x20], 0x888b6106
mov dword [esp + 0x24], 0x41981295
mov dword [esp + 0x28], 0x90821f08
mov dword [esp + 0x2c], 0x84007602
cmp ecx, 0xe
jne 0x1009d0d4
push 0x12
pop esi
push 0x1e
pop ecx
jmp 0x1009d100
movzx eax, byte [esp + ecx + 0xd]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009d0f4
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xc]
mov byte [esp + eax + 0x274], dl
add ecx, 2
cmp ecx, 0x24
jb 0x1009d0c7
lea eax, [esp + 0x274]
mov byte [esp + 0x27d], 0
push eax
lea ecx, [esp + 0x29c]
call fcn.1001c44c
mov byte [esp + 0x51c], 0x19
lea edi, [esp + 0x274]
xor eax, eax
mov dword [esp + 0xc], 0x6c037a05
stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x10], 0x7f017704
xor esi, esi
mov dword [esp + 0x14], 0x7b026e00
mov dword [esp + 0x18], 0x26540110
stosd dword es:[edi], eax
mov dword [esp + 0x1c], 0xabca5505
mov dword [esp + 0x20], 0x75b21dfb
mov dword [esp + 0x24], 0x7efd0e5a
stosw word es:[edi], ax
cmp ecx, 0xc
jne 0x1009d182
push 0x10
pop esi
push 0x1a
pop ecx
jmp 0x1009d1ae
movzx eax, byte [esp + ecx + 0xd]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009d1a2
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xc]
mov byte [esp + eax + 0x240], dl
add ecx, 2
cmp ecx, 0x1c
jb 0x1009d175
lea eax, [esp + 0x240]
mov byte [esp + 0x246], 0
push eax
lea ecx, [esp + 0x22c]
call fcn.1001c44c
xor eax, eax
mov byte [esp + 0x51c], 0x1a
lea edi, [esp + 0x240]
stosd dword es:[edi], eax
push ecx
lea ecx, [esp + 0x20c]
push ecx
stosw word es:[edi], ax
lea ecx, [esp + 0xa0]
stosb byte es:[edi], al
mov eax, dword [esp + 0x208]
sub eax, ebx
add eax, ebx
push eax
push ebx
call fcn.1001b55d
test al, al
je 0x1009dae7
lea eax, [esp + 0x298]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d99f
test al, al
je 0x1009dae7
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d99f
test al, al
je 0x1009dae7
lea eax, [esp + 0x3c0]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d839
mov ecx, eax
call fcn.1001d190
cmp eax, 1
jne 0x1009dae7
lea eax, [esp + 0x324]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d99f
test al, al
je 0x1009d6f8
lea eax, [esp + 0x324]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d839
push 0
lea ecx, [esp + 0x30c]
mov dword [esp + 0x98], eax
call fcn.1001cd23
push 4
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x520], 0x1b
call fcn.1001cd23
xor eax, eax
mov dword [esp + 0x294], 0xf
mov dword [esp + 0x290], eax
mov byte [esp + 0x280], al
mov ebx, eax
mov dword [esp + 0x1e4], eax
mov edi, eax
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], edi
mov byte [esp + 0x51c], 0x1e
mov esi, eax
mov ecx, dword [esp + 0x94]
call fcn.1001d474
mov dword [esp + 0x5c], eax
test eax, eax
jle 0x1009d3c5
mov edi, eax
mov ecx, dword [esp + 0x94]
lea eax, [esp + 0x308]
push eax
push esi
lea eax, [esp + 0x1b8]
push eax
call fcn.1001d7a7
push eax
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x520], 0x1f
call fcn.1001cfb5
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x1e
call fcn.1001cf38
lea ecx, [esp + 0x1e8]
call fcn.1001daa5
test al, al
je 0x1009d3ae
lea eax, [esp + 0x40]
push eax
call fcn.1001d107
push eax
lea ecx, [esp + 0x284]
call fcn.100360e4
push 0
push 1
lea ecx, [esp + 0x48]
call fcn.100170c9
lea eax, [esp + 0x280]
push eax
lea ecx, [esp + 0x1e0]
call fcn.10020c38
inc esi
cmp esi, edi
jl 0x1009d320
mov edi, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1cc]
xor esi, esi
call fcn.1001d474
mov dword [esp + 0x5c], eax
test eax, eax
jle 0x1009d4a1
mov ecx, dword [esp + 0x1cc]
lea eax, [esp + 0x308]
push eax
push esi
lea eax, [esp + 0x1b8]
push eax
call fcn.1001d7a7
push eax
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x520], 0x20
call fcn.1001cfb5
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x1e
call fcn.1001cf38
lea ecx, [esp + 0x1e8]
call fcn.1001daa5
test al, al
je 0x1009d496
lea eax, [esp + 0x40]
push eax
call fcn.1001d107
push eax
lea ecx, [esp + 0x284]
call fcn.100360e4
push 0
push 1
lea ecx, [esp + 0x48]
call fcn.100170c9
push edi
push ebx
lea edx, [esp + 0x288]
lea ecx, [esp + 0x9c]
call fcn.100a5ba2
pop ecx
pop ecx
cmp dword [eax], edi
jne 0x1009d496
lea eax, [esp + 0x280]
push eax
lea ecx, [esp + 0x1e0]
call fcn.10020c38
mov edi, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1dc]
inc esi
cmp esi, dword [esp + 0x5c]
jl 0x1009d3df
push 6
lea ecx, [esp + 0x21c]
call fcn.1001cd23
mov byte [esp + 0x51c], 0x21
mov esi, ebx
cmp ebx, edi
je 0x1009d501
push esi
lea ecx, [esp + 0x264]
call fcn.1001cdd8
lea eax, [esp + 0x260]
mov byte [esp + 0x51c], 0x22
push eax
lea ecx, [esp + 0x21c]
call fcn.1001d86b
lea ecx, [esp + 0x260]
mov byte [esp + 0x51c], 0x21
call fcn.1001cf38
add esi, 0x18
cmp esi, edi
jne 0x1009d4bd
lea eax, [esp + 0x218]
push eax
push ecx
mov ecx, dword [esp + 0x190]
lea eax, [esp + 0x32c]
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
push 6
lea ecx, [esp + 0x264]
call fcn.1001cd23
and dword [esp + 0x2d0], 0
mov dword [esp + 0x2d4], 0xf
mov byte [esp + 0x2c0], 0
mov ecx, dword [esp + 0x16c]
xor esi, esi
mov byte [esp + 0x51c], 0x24
call fcn.1001d474
mov dword [esp + 0x5c], eax
test eax, eax
jle 0x1009d653
mov ecx, dword [esp + 0x16c]
lea eax, [esp + 0x308]
push eax
push esi
lea eax, [esp + 0x48]
push eax
call fcn.1001d7a7
push eax
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x520], 0x25
call fcn.1001cfb5
lea ecx, [esp + 0x40]
mov byte [esp + 0x51c], 0x24
call fcn.1001cf38
lea ecx, [esp + 0x1e8]
call fcn.1001daa5
test al, al
je 0x1009d648
lea eax, [esp + 0x60]
push eax
call fcn.1001d107
push eax
lea ecx, [esp + 0x2c4]
call fcn.100360e4
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.100170c9
push edi
push ebx
lea edx, [esp + 0x2c8]
lea ecx, [esp + 0x9c]
call fcn.100a5ba2
pop ecx
pop ecx
cmp dword [eax], edi
jne 0x1009d648
lea eax, [esp + 0x2c0]
push eax
lea ecx, [esp + 0x1b4]
call fcn.1001cdd8
lea eax, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x26
push eax
lea ecx, [esp + 0x264]
call fcn.1001d86b
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x24
call fcn.1001cf38
inc esi
cmp esi, dword [esp + 0x5c]
jl 0x1009d571
mov ebx, dword [esp + 0x188]
lea eax, [esp + 0x260]
push eax
push ecx
lea eax, [esp + 0x35c]
mov ecx, ebx
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
push 0
push 1
lea ecx, [esp + 0x2c8]
call fcn.100170c9
lea ecx, [esp + 0x260]
mov byte [esp + 0x51c], 0x21
call fcn.1001cf38
lea ecx, [esp + 0x218]
mov byte [esp + 0x51c], 0x1e
call fcn.1001cf38
lea ecx, [esp + 0x1dc]
call fcn.1001e179
push 0
push 1
lea ecx, [esp + 0x288]
call fcn.100170c9
lea ecx, [esp + 0x1e8]
mov byte [esp + 0x51c], 0x1b
call fcn.1001cf38
lea ecx, [esp + 0x308]
mov byte [esp + 0x51c], 0x1a
call fcn.1001cf38
jmp 0x1009d756
push dword [esp + 0x16c]
mov ebx, dword [esp + 0x18c]
lea eax, [esp + 0x358]
push ecx
push eax
mov ecx, ebx
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
mov esi, dword [esp + 0x1cc]
mov ecx, esi
call fcn.1001da7c
test al, al
je 0x1009d73d
lea eax, [esp + 0x3b0]
push eax
call fcn.1001cfb5
push esi
push ecx
lea eax, [esp + 0x32c]
mov ecx, ebx
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
lea eax, [esp + 0x298]
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d839
push eax
push ecx
lea eax, [esp + 0x2a0]
mov ecx, ebx
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
xor esi, esi
mov dword [esp + 0x40], 0x75046208
mov dword [esp + 0x44], 0x6c0a7502
xor ecx, ecx
mov dword [esp + 0x48], 0x70056d07
mov dword [esp + 0x4c], 0x6e067200
mov dword [esp + 0x50], 0x64027a03
mov dword [esp + 0x54], 0x89098b01
cmp ecx, 0x12
jne 0x1009d7c1
push 2
pop esi
jmp 0x1009d7ea
movzx eax, byte [esp + ecx + 0x41]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009d7e1
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x40]
mov byte [esp + eax + 0x30], dl
add ecx, 2
cmp ecx, 0x18
jb 0x1009d7b7
lea eax, [esp + 0x30]
mov byte [esp + 0x3b], 0
push eax
lea ecx, [esp + 0x64]
call fcn.1001c44c
mov esi, eax
lea eax, [esp + 0x228]
mov byte [esp + 0x51c], 0x27
push eax
lea ecx, [esp + 0x20c]
call fcn.1001d839
push eax
push ecx
push esi
mov ecx, ebx
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
push 0
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x524], 0x1a
call fcn.100170c9
xor eax, eax
lea edi, [esp + 0x30]
stosd dword es:[edi], eax
lea ecx, [esp + 0x1b0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x2e4]
push eax
call fcn.1001cdd8
lea eax, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x28
push eax
push ecx
lea eax, [esp + 0x344]
mov ecx, ebx
push eax
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x1a
call fcn.1001cf38
xor ecx, ecx
mov dword [esp + 0x60], 0x700d6a15
mov dword [esp + 0x64], 0x66107b11
xor esi, esi
mov dword [esp + 0x68], 0x7d0c7717
mov dword [esp + 0x6c], 0x7e0b7208
mov dword [esp + 0x70], 0x86007204
mov dword [esp + 0x74], 0x780e7e01
mov dword [esp + 0x78], 0x8d137f0a
mov dword [esp + 0x7c], 0x86028212
mov dword [esp + 0x80], 0x97058f03
mov dword [esp + 0x84], 0x99079814
mov dword [esp + 0x88], 0xa0069816
mov dword [esp + 0x8c], 0xf8c0901
mov byte [esp + 0x90], 0xa3
cmp ecx, 0x2c
jne 0x1009d928
xor esi, esi
push 0x2b
inc esi
pop ecx
jmp 0x1009d951
movzx eax, byte [esp + ecx + 0x61]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009d948
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x60]
mov byte [esp + eax + 0xc], dl
add ecx, 2
cmp ecx, 0x31
jb 0x1009d91b
push 2
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x28], 0
call fcn.1001cd99
lea eax, [esp + 0xc]
mov byte [esp + 0x51c], 0x29
push eax
lea ecx, [esp + 0x64]
call fcn.1001c44c
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x2a
push ecx
push ecx
push eax
mov ecx, ebx
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.100170c9
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x1a
call fcn.1001cf38
push 6
xor eax, eax
mov dword [esp + 0x64], 0x64067505
pop ecx
lea edi, [esp + 0xc]
mov dword [esp + 0x64], 0x6c037804
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x68], 0x78027908
mov dword [esp + 0x6c], 0x8fb11409
xor esi, esi
mov dword [esp + 0x70], 0x3c03ee84
stosb byte es:[edi], al
mov dword [esp + 0x74], 0x17a07d8
mov word [esp + 0x78], 0x78
mov byte [esp + 0x7a], 0x85
cmp ecx, 0xc
jne 0x1009da1d
push 9
pop esi
push 0x13
pop ecx
jmp 0x1009da49
movzx eax, byte [esp + ecx + 0x61]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009da3d
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x60]
mov byte [esp + eax + 0x318], dl
add ecx, 2
cmp ecx, 0x1b
jb 0x1009da10
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x321], 0
call fcn.10034363
push eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x520], 0x2b
call fcn.1001cdd8
lea eax, [esp + 0x318]
mov byte [esp + 0x51c], 0x2c
push eax
lea ecx, [esp + 0x64]
call fcn.1001c44c
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x2d
push ecx
push ecx
push eax
mov ecx, ebx
call fcn.1001d839
pop ecx
mov ecx, eax
call fcn.1001cfb5
xor ebx, ebx
lea ecx, [esp + 0x60]
push ebx
push 1
call fcn.100170c9
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x51c], 0x2b
call fcn.1001cf38
push ebx
push 1
lea ecx, [esp + 0x2c8]
call fcn.100170c9
jmp 0x1009dae9
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x230]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x2a0]
call fcn.100170c9
lea ecx, [esp + 0x208]
mov byte [esp + 0x51c], 0x17
call fcn.1001cf38
lea ecx, [esp + 0x98]
call fcn.10029ee0
jmp 0x1009db2b
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x388]
call fcn.10014448
lea ecx, [esp + 0x1fc]
call fcn.100146c8
push ebx
push 1
lea ecx, [esp + 0x428]
call fcn.100170c9
lea ecx, [esp + 0x18c]
call fcn.1001f266
push ebx
push 1
lea ecx, [esp + 0x3c8]
call fcn.100170c9
lea ecx, [esp + 0x2b0]
mov byte [esp + 0x51c], 0xa
call fcn.1001cf38
push ebx
push 1
lea ecx, [esp + 0x3a0]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x3e0]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x344]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x250]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x2ec]
call fcn.100170c9
jmp 0x1009dbf2
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x3f0]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.1001d960
lea ecx, [esp + 0x40]
call fcn.1001cf38
xor ebx, ebx
lea ecx, [esp + 0x3b0]
mov byte [esp + 0x51c], 4
call fcn.1001cf38
push ebx
push 1
lea ecx, [esp + 0x32c]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x35c]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x3f8]
call fcn.100170c9
push ebx
push 1
lea ecx, [esp + 0x410]
call fcn.10014448
mov ecx, dword [esp + 0x514]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret