Function at 0x10001cb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2a8
mov eax, dword [0x240d428]
xor eax, esp
mov dword [esp + 0x2a4], eax
push ebx
mov ebx, dword [esp + 0x2b0]
push ebp
push esi
push edi
push 0xf4
xor ebp, ebp
lea eax, [esp + 0xa0]
push ebp
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0xa4], 0x4550
call fcn.1003c430
mov ecx, dword [ebx]
xor eax, eax
push 0x2408d40
push ecx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x4c], 0x1000
mov dword [esp + 0x24], ebp
call fcn.100515fc
mov edx, dword [ebx]
neg eax
sbb eax, eax
inc eax
push 0x2408d4c
push edx
mov dword [esp + 0x60], eax
call fcn.100515fc
mov esi, dword [ebx + 0x20]
add esp, 0x1c
neg eax
sbb eax, eax
sub esi, dword [ebx + 0x24]
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x40], esi
cmp eax, ebp
je 0x10001da4
add eax, 0x1000
mov dword [esp + 0x38], eax
mov edi, dword [ebx]
lea edx, [esp + 0x230]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10001db1
push 0x2e
push edi
call fcn.10036510
add esp, 8
test eax, eax
jne 0x10001deb
lea eax, [esp + 0x230]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10001dd2
mov ecx, dword [0x2408d54]
mov dl, byte [0x2408d58]
mov dword [eax], ecx
mov byte [eax + 4], dl
shl esi, 6
mov eax, esi
and eax, 0xffff
cmp eax, 0xa000
mov ecx, esi
jg 0x10001e0a
and esi, 0xffffec00
or esi, 0xec00
mov eax, dword [ebx + 0x34]
cmp eax, ebp
jne 0x10001e19
add esi, 0x40000
jmp 0x10001e1b
add esi, eax
cmp esi, ecx
mov dword [esp + 0x20], esi
jge 0x10001e27
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x20]
lea esi, [ecx + ecx*4 + 0x14]
add esi, esi
lea eax, [esp + 0x230]
mov dword [esp + 0x48], esi
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10001e40
mov edx, dword [ebx + 0x38]
add edx, dword [ebx + 0x40]
sub eax, edi
add edx, eax
xor eax, eax
cmp ecx, eax
lea edi, [edx + esi + 0x111]
mov dword [esp + 0x14], eax
jle 0x10001f5f
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x24], eax
mov ebp, dword [ebx + 0x28]
add ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 0x18]
test al, 8
jne 0x10001f43
test eax, 0x40000000
je 0x10001e93
add edi, 8
jmp 0x10001ec0
mov eax, dword [ebp + 4]
test eax, eax
je 0x10001ec0
push 0x60
push eax
call fcn.10036320
add esp, 8
test eax, eax
je 0x10001ec0
inc eax
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001eb0
sub eax, edx
inc eax
add dword [esp + 0x28], eax
add edi, eax
mov esi, dword [ebp]
test esi, esi
je 0x10001f43
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001ed0
mov ecx, dword [esp + 0x1c]
sub eax, edx
cmp dword [esp + 0x44], 0
lea edx, [ecx + eax + 1]
lea edi, [edi + eax + 1]
mov dword [esp + 0x1c], edx
je 0x10001f32
mov ecx, dword [esp + 0x50]
xor eax, eax
or ecx, eax
jne 0x10001f32
mov ecx, 0x2408d5c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10001f21
test dl, dl
je 0x10001f1d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10001f21
add eax, 2
add ecx, 2
test dl, dl
jne 0x10001f01
xor eax, eax
jmp 0x10001f26
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10001f32
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
test dword [ebp + 0x18], 0x80000000
je 0x10001f43
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], 0x60
add dword [esp + 0x24], 0x40
inc eax
cmp eax, dword [ebx + 0x20]
mov dword [esp + 0x14], eax
jl 0x10001e75
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
lea ecx, [esi + 0x1ff]
and ecx, 0xfffffe00
add edi, 7
lea edx, [ecx + 0x400]
mov dword [esp + 0x34], edx
lea edx, [edi + 0x1ff]
and edx, 0xfffffe00
add edx, dword [esp + 0x34]
add esi, 0xfff
mov dword [esp + 0x2c], edx
mov edx, 0x14c
mov word [esp + 0x9c], dx
mov edx, 4
mov word [esp + 0x9e], dx
mov edx, 0xe0
mov word [esp + 0xac], dx
and esi, 0xfffff000
lea ebp, [esi + eax]
mov edx, 0x210e
mov word [esp + 0xae], dx
lea eax, [edi + 0xfff]
mov edx, 0x10b
and eax, 0xfffff000
mov word [esp + 0xb0], dx
mov edx, dword [esp + 0x20]
add eax, ebp
cmp dword [esp + 0x10], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0xa0], 0x4802a12c
mov byte [esp + 0xb2], 7
mov byte [esp + 0xb3], 0xa
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
je 0x10002036
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc0], edx
jmp 0x1000204f
mov edx, dword [ebx + 0x10]
mov dword [esp + 0xc0], edx
test edx, edx
jne 0x1000204f
mov dword [esp + 0xc0], 0xf07f
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc4], edx
mov edx, dword [ebx + 8]
mov ebx, 5
mov word [esp + 0xd8], bx
mov ebx, 1
mov word [esp + 0xda], bx
mov ebx, 5
mov word [esp + 0xdc], bx
mov ebx, 1
mov dword [esp + 0xcc], edx
mov edx, 0x1000
mov word [esp + 0xde], bx
mov dword [esp + 0xe8], eax
mov ebx, 4
mov eax, 3
mov dword [esp + 0xd0], edx
mov word [esp + 0xe0], bx
mov word [esp + 0xf4], ax
mov dword [esp + 0xfc], edx
mov dword [esp + 0x104], edx
xor ebx, ebx
mov edx, 0x110
lea eax, [esp + 0x230]
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xd4], 0x200
mov word [esp + 0xe2], bx
mov dword [esp + 0xec], 0x400
mov dword [esp + 0xf8], 0x40000
mov dword [esp + 0x100], 0x100000
mov dword [esp + 0x10c], 0x10
mov dword [esp + 0x11c], edx
lea ebp, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x10002131
mov ebx, dword [esp + 0x18]
sub eax, ebp
mov ebp, dword [ebx + 0x40]
mov ebx, dword [esp + 0x24]
add ebp, eax
lea eax, [ebx + ebp + 1]
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0x48]
lea ebp, [eax + 0x110]
mov dword [esp + 0x118], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x28]
add edx, eax
add edx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x114], edx
mov edx, dword [0x2408d68]
mov dword [esp + 0x190], eax
mov dword [esp + 0x190], edx
movzx edx, word [0x2408d6c]
mov dword [esp + 0x194], eax
mov word [esp + 0x194], dx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x19c], edx
movzx edx, word [0x2408d74]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a0], ecx
mov ecx, dword [0x2408d70]
mov dword [esp + 0x198], esi
mov esi, ebx
mov ebx, dword [0x2408d78]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], eax
mov word [esp + 0x1bc], dx
lea ecx, [edi + 0xfff]
mov dword [esp + 0x1e0], eax
lea edx, [edi + 0x1ff]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x1e0], ebx
movzx ebx, word [0x2408d7c]
and ecx, 0xfffff000
and edx, 0xfffffe00
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x13c], 0x1400
mov dword [esp + 0x16c], 0x100
mov dword [esp + 0x110], ebp
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1a4], 0x400
mov dword [esp + 0x1b4], 0x60000020
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1dc], 0xc0000040
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov word [esp + 0x1e4], bx
mov dword [esp + 0x1e8], eax
lea ebx, [esi + ecx]
mov dword [esp + 0x1ec], ebx
lea ebx, [edi + edx]
mov dword [esp + 0x1f4], ebx
mov ebx, dword [0x2408d80]
mov dword [esp + 0x208], eax
mov dword [esp + 0x208], ebx
movzx ebx, word [0x2408d84]
mov dword [esp + 0x20c], eax
mov word [esp + 0x20c], bx
mov bl, byte [0x2408d86]
add esi, ecx
add edi, edx
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x204], 0x40000040
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], eax
mov byte [esp + 0x20e], bl
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], esi
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], edi
mov dword [esp + 0x22c], 0x42000040
cmp dword [esp + 0x44], eax
je 0x1000241c
add ecx, 0x4e20
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x2c]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x7c], eax
lea eax, [ebp + 0x28]
mov dword [esp + 0x8c], eax
lea eax, [eax + ebx*4]
mov dword [esp + 0x90], eax
lea eax, [eax + ebx*4]
push esi
mov dword [esp + 0x78], 0x48025be1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x98], eax
call fcn.10036a69
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10002491
call fcn.10036420
mov dword [eax], 0xc
xor eax, eax
jmp 0x10002b50
mov ebp, dword [esp + 0x20]
push esi
push 0
push ebp
call fcn.1003c430
lea eax, [ebp + 0xe0]
mov edi, ebp
mov ecx, 0x38
mov esi, 0x241b730
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, 0x3e
lea esi, [esp + 0xa4]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xf8]
lea eax, [ebp + 0x400]
mov ebp, dword [esp + 0x24]
mov ecx, 0x28
lea esi, [esp + 0x19c]
add esp, 0xc
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x20], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
jle 0x100026c8
mov ecx, dword [esp + 0x18]
lea ebp, [eax + 0x13]
mov dword [esp + 0x30], 0
lea esp, [esp]
mov ebx, dword [ecx + 0x28]
add ebx, dword [esp + 0x30]
test byte [ebx + 0x18], 8
jne 0x100026a9
mov esi, dword [ebx + 4]
test esi, esi
je 0x100026a1
cmp byte [esi], 0x2a
lea eax, [esi + 1]
je 0x10002536
mov eax, esi
test eax, eax
je 0x100026a1
cmp dword [esp + 0x44], 0
je 0x100025ca
mov eax, dword [ebx]
test eax, eax
je 0x100025ca
mov edi, dword [esp + 0x50]
mov edx, edi
xor ecx, ecx
or edx, ecx
je 0x100025ca
mov ecx, 0x2408d88
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002580
test dl, dl
je 0x1000257c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002580
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002560
xor eax, eax
jmp 0x10002585
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100025ca
mov eax, dword [esp + 0x10]
push 0x40
push 0x90
push eax
call fcn.1003c430
mov ecx, dword [esp + 0x2c]
sub edi, ebp
add esp, 0xc
sub edi, dword [esp + 0x38]
mov byte [ebp], 0xff
lea edx, [edi + ecx + 0x3fa]
mov byte [ebp + 1], 0x55
mov byte [ebp + 2], 8
mov byte [ebp + 3], 0x50
mov byte [ebp + 4], 0xe8
mov dword [ebp + 5], edx
jmp 0x1000269d
mov cl, byte [esi]
lea eax, [esi + 1]
cmp cl, 0x2a
je 0x100025d6
mov eax, esi
cmp esi, eax
jne 0x1000260c
cmp cl, 0x2a
jne 0x100025e0
inc esi
test esi, esi
je 0x1000260c
push 0x60
push esi
call fcn.10036320
add esp, 8
test eax, eax
je 0x100025f8
sub eax, esi
dec eax
jmp 0x1000260e
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002600
sub eax, edx
dec eax
jmp 0x1000260e
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x68]
movzx ecx, word [esp + 0x14]
shl edx, 0x10
or edx, ecx
test byte [ebx + 0x18], 4
je 0x10002650
mov edi, dword [esp + 0x10]
mov dword [0x241b6eb], edx
lea edx, [eax*4]
mov word [0x241b6f2], dx
mov ecx, 0x10
mov esi, 0x241b6e8
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebx + 0x58], 5
jmp 0x1000267c
mov dword [0x241b65d], edx
lea edx, [eax*4]
mov eax, dword [esp + 0x10]
push 0x40
push 0x241b650
push eax
mov word [0x241b675], dx
call fcn.1003f7c0
add esp, 0xc
mov byte [ebx + 0x58], 0x20
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x1000269d
mov eax, dword [ebx + 0x28]
cmp eax, 0xa
jg 0x1000269d
push eax
push ecx
mov ecx, dword [esp + 0x18]
add ecx, 2
push ecx
call fcn.1003f7c0
add esp, 0xc
mov ecx, dword [esp + 0x18]
add dword [esp + 0x10], 0x40
add ebp, 0x40
mov eax, dword [esp + 0x14]
add dword [esp + 0x30], 0x60
inc eax
cmp eax, dword [ecx + 0x20]
mov dword [esp + 0x14], eax
jl 0x10002510
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
lea esi, [eax + edx]
lea eax, [esp + 0x230]
mov edx, esi
mov ecx, eax
mov dword [esp + 0x34], esi
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x100026e4
lea eax, [esp + 0x230]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100026f8
sub eax, edx
lea edi, [esi + eax + 0x111]
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x10], edi
test eax, eax
je 0x10002728
mov edx, dword [ebp + 0x40]
push edx
push eax
push edi
call fcn.1003f7c0
add esp, 0xc
add edi, dword [ebp + 0x40]
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
lea eax, [edi + ebx*4 + 0x28]
lea ecx, [eax + ebx*4]
lea ebx, [ecx + ebx*2]
add edx, ebx
mov dword [esp + 0x60], edx
lea edx, [edx + esi + 7]
xor esi, esi
and edx, 0xfffffff8
cmp dword [ebp + 0x20], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
jle 0x100029e7
sub edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x64], edx
lea esp, [esp]
mov ebp, dword [eax + 0x28]
add ebp, dword [esp + 0x40]
test byte [ebp + 0x18], 8
jne 0x100029c8
mov eax, dword [ebp + 4]
test eax, eax
je 0x100027fb
push 0x60
push eax
call fcn.10036320
add esp, 8
test eax, eax
je 0x100027fb
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, edi
sub ecx, dword [esp + 0x34]
inc eax
add ecx, dword [esp + 0x24]
mov dword [edx + esi*4 + 0x28], ecx
mov esi, edi
mov ecx, eax
sub esi, eax
mov dl, byte [ecx]
mov byte [ecx + esi], dl
inc ecx
test dl, dl
jne 0x100027d8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100027e5
sub eax, edx
lea eax, [edi + eax + 1]
mov dword [esp + 0x60], eax
jmp 0x10002888
test dword [ebp + 0x18], 0x40000000
je 0x10002833
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [edx + eax*4 + 0x28], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [ebp + 0x10]
mov dword [eax], edx
mov edx, dword [ebp + 0x14]
mov dword [eax + 4], edx
add eax, 8
add ecx, 8
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ecx
jmp 0x10002888
cmp dword [esp + 0x44], 0
je 0x10002878
mov eax, dword [ebp]
test eax, eax
je 0x10002878
mov ecx, 0x2408d88
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002866
test dl, dl
je 0x10002862
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002866
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002846
xor eax, eax
jmp 0x1000286b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10002878
mov eax, dword [esp + 0x28]
add eax, 0x14
jmp 0x1000287c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [ecx + edx*4 + 0x28], eax
cmp dword [ebp], 0
je 0x100029ab
mov esi, dword [esp + 0x50]
inc dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, esi
sub eax, dword [esp + 0x34]
mov edx, esi
add eax, dword [esp + 0x24]
mov dword [ecx], eax
mov ecx, dword [ebp]
nop
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x100028b0
mov eax, dword [ebp]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100028c0
mov cx, word [esp + 0x1c]
add dword [esp + 0x30], 4
sub eax, edx
lea edx, [esi + eax + 1]
mov eax, dword [esp + 0x48]
mov word [eax], cx
add eax, 2
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], eax
je 0x100029ab
cmp dword [ebp + 4], 0
je 0x100029ab
mov ebx, dword [ebp]
mov al, byte [ebx]
cmp al, 0x4e
jne 0x10002925
cmp byte [ebx + 1], 0x74
jne 0x10002925
cmp dword [esp + 0x4c], 0
jne 0x100029ab
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], edx
jmp 0x100029ab
cmp al, 0x5a
jne 0x100029ab
cmp byte [ebx + 1], 0x77
jne 0x100029ab
mov esi, dword [esp + 0x4c]
cmp esi, dword [esp + 0x14]
mov edi, esi
jge 0x100029ab
mov eax, dword [esp + 0x18]
lea esi, [esi + esi*2]
shl esi, 5
add esi, dword [eax + 0x28]
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
je 0x100029ab
cmp byte [eax], 0x4e
jne 0x100029ab
cmp byte [eax + 1], 0x74
jne 0x100029ab
lea ecx, [eax + 2]
lea eax, [ebx + 2]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002987
test dl, dl
je 0x10002983
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002987
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002967
xor eax, eax
jmp 0x1000298c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1000299c
inc edi
add esi, 0x60
cmp edi, dword [esp + 0x14]
jl 0x10002950
jmp 0x100029ab
mov ecx, dword [esi + 0x30]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [edx + eax*4 + 0x28], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax*4 + 0x28]
inc eax
add dword [esp + 0x28], 0x40
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x30], edx
mov ecx, dword [esp + 0x14]
add dword [esp + 0x40], 0x60
inc ecx
cmp ecx, dword [eax + 0x20]
mov dword [esp + 0x14], ecx
jl 0x10002790
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x44], 0
mov eax, dword [esp + 0x3c]
mov ecx, 0xa
lea esi, [esp + 0x70]
mov dword [esp + 0x88], eax
rep movsd dword es:[edi], dword [esi]
je 0x10002a18
mov eax, dword [esp + 0x6c]
mov dword [eax - 0xe], 0x1b8
mov dword [eax - 0xa], 0x10c200
jmp 0x10002a34
cmp dword [esp + 0x5c], 0
je 0x10002a34
mov edi, dword [esp + 0x20]
add edi, 2
mov ecx, 0xe
mov esi, 0x240f054
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp dword [ebp + 0x48], 0
mov dword [esp + 0x14], 0
jle 0x10002b25
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], 0
mov ecx, dword [eax + 0x44]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + edx]
sub eax, 0
lea ebx, [ecx + edx]
je 0x10002ac1
sub eax, 1
je 0x10002aae
sub eax, 2
jne 0x10002b0a
mov ebp, dword [ebx + 4]
or eax, 0xffffffff
xor esi, esi
lea ecx, [esp + 0x198]
mov edx, dword [ecx]
mov edi, edx
test edx, edx
jne 0x10002a8c
mov edi, dword [ecx + 8]
mov edx, dword [ecx + 4]
cmp ebp, edx
jl 0x10002a99
add edx, edi
cmp ebp, edx
jl 0x10002aa4
inc esi
add ecx, 0x28
cmp esi, 4
jl 0x10002a81
jmp 0x10002ac4
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 4]
add eax, ebp
jmp 0x10002ac4
mov eax, dword [ebx + 4]
cdq
mov ecx, eax
mov esi, edx
add ecx, 0xe0
adc esi, 0
jmp 0x10002ac9
mov eax, dword [ebx + 4]
cdq
mov esi, edx
mov ecx, eax
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
je 0x10002b0a
xor ebp, ebp
cmp esi, ebp
ja 0x10002b0a
jb 0x10002ae0
cmp ecx, dword [esp + 0x2c]
jae 0x10002b0a
mov edi, dword [ebx + 0xc]
mov eax, edi
cdq
add eax, ecx
adc edx, esi
cmp edx, ebp
ja 0x10002b0a
jb 0x10002af6
cmp eax, dword [esp + 0x2c]
jae 0x10002b0a
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x20]
push edi
push edx
add ecx, eax
push ecx
call fcn.1003f7c0
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add dword [esp + 0x3c], 0x10
inc ecx
cmp ecx, dword [eax + 0x48]
mov dword [esp + 0x14], ecx
jl 0x10002a52
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
push 0
push edi
lea ecx, [esi + 0x58]
push ecx
call dword [0x23d6120]
test eax, eax
je 0x10002b47
push edi
call fcn.10036912
add esp, 4
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x60], edx
mov eax, esi
mov ecx, dword [esp + 0x2b4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100362fa
add esp, 0x2a8
ret