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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1003ccc3
push eax
mov dword fs:[0], esp
sub esp, 0xac
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea esi, [ebp + 0xa8]
lea eax, [ebp + 0x98]
mov ecx, esi
lea edi, [ebp + 0xb8]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10028e4d
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10028e42
cmp word [esi], 0x3f
jne 0x1002a9e2
cmp dword [esi + 4], 1
jne 0x1002a9e2
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10028ed1
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10028ec6
mov ax, word [esi]
xor ebx, ebx
mov ecx, eax
mov dword [esp + 0x24], ebx
and ecx, 0xffff
mov dword [esp + 0x20], 0x3e
add ecx, 0xffffffdf
cmp ecx, 0x31
ja case.0x10028efe.41
xor edx, edx
mov dl, byte [ecx + 0x1002ab50]
jmp dword [edx*4 + 0x1002ab2c]
mov dword [esp + 0x24], 1
mov eax, esi
mov ecx, dword [eax]
mov dword [ebp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 0xa0], ecx
mov ecx, esi
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [ebp + 0xa4], edx
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0xcc]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0xc8]
mov eax, dword [ebp + 0xd0]
mov dword [edi], ecx
mov ecx, dword [ebp + 0xd4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10028f85
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10028f7a
push 0xc
call fcn.10030d66
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
test ebx, ebx
mov dword [esp + 0xc4], 0
je 0x10029c1a
mov edx, dword [esp + 0xcc]
push 0
push 0
push 1
mov edi, dword [edx]
push 0
lea ecx, [esp + 0x78]
and edi, 0xffffffef
call fcn.1001e980
mov cx, word [esi]
cmp cx, word [eax]
jne 0x10028fe5
mov edx, dword [esi + 4]
mov ecx, dword [eax + 4]
cmp edx, ecx
jne 0x10028fe5
push 0
mov ecx, ebp
call fcn.10021350
jmp 0x100290ae
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
mov dword [esp + 0x18], edi
call fcn.10021130
push 0
push 0
mov edi, eax
push 1
push 0x7c
lea ecx, [esp + 0x64]
mov dword [esp + 0x28], edi
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100290ac
push 0x18
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10029035
mov ecx, eax
call fcn.10027130
mov ebx, eax
jmp 0x10029037
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
call fcn.1002c1d0
mov ecx, dword [esp + 0x18]
lea edi, [ebx + 4]
push ecx
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100290a4
mov ecx, ebp
call fcn.10023660
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.10021130
push eax
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x1002906c
mov eax, ebx
mov ebx, dword [esp + 0x1c]
jmp 0x100290ae
mov eax, edi
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ebx], 0x1003d4e4
test ecx, ecx
sete al
mov dword [ebx + 8], eax
jmp 0x10029c1c
xor eax, eax
mov ax, word [edi]
cmp eax, 0x21
je 0x100290de
cmp eax, 0x3d
je 0x100290e6
jmp case.0x10028efe.39
mov dword [esp + 0x24], 1
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029156
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002914b
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x100291c6
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x100291bb
push 0xc
call fcn.10030d66
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0xc4], 1
je 0x1002930e
mov ecx, dword [esp + 0xcc]
push 0
push 0
push 1
mov ebx, dword [ecx]
push 0
lea ecx, [esp + 0x64]
or ebx, 0x10
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x1002921e
push 0
mov ecx, ebp
call fcn.10021350
jmp 0x100292f1
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
mov dword [esp + 0x18], ebx
call fcn.10021130
push 0
push 0
mov ebx, eax
push 1
push 0x7c
lea ecx, [esp + 0x78]
mov dword [esp + 0x28], ebx
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100292ef
push 0x18
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10029270
mov ecx, eax
call fcn.10027130
mov dword [esp + 0x1c], eax
jmp 0x10029278
mov dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x1c]
lea ecx, [ebp + 0x14]
push ebx
call fcn.1002c1d0
mov eax, dword [esp + 0x18]
add ebx, 4
push eax
mov ecx, ebx
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100292e9
mov ecx, ebp
call fcn.10023660
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.10021130
push eax
mov ecx, ebx
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x100292b1
mov eax, dword [esp + 0x1c]
jmp 0x100292f1
mov eax, ebx
mov ebx, dword [esp + 0x28]
xor edx, edx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x24]
test eax, eax
sete dl
mov dword [ebx], 0x1003d4e4
mov dword [ebx + 8], edx
jmp 0x10029310
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
mov dword [esp + 0xc8], 0xffffffff
call fcn.1002c1d0
test ebx, ebx
jne 0x1002a9d4
cmp word [esi], 0x50
jne case.0x10028efe.34
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne case.0x10028efe.34
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029397
mov ax, word [esi]
cmp ax, 0x3c
jne 0x100293b5
mov dword [esp + 0x20], 0x3e
jmp 0x100293c3
cmp ax, 0x27
jne 0x100293c3
mov dword [esp + 0x20], 0x27
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029433
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029428
mov eax, dword [ebp + 0xc]
push 0x1c
mov dword [esp + 0x20], eax
inc eax
mov dword [ebp + 0xc], eax
call fcn.10030d66
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1002947f
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx]
lea ecx, [ebx + 4]
and eax, 0x10
mov dword [ebx], 0x1003d430
mov dword [esp + 0x18], eax
call fcn.1001e5e0
mov edx, dword [esp + 0x18]
mov dword [ebx], 0x1003d43c
mov dword [ebx + 0x18], edx
mov dword [esp + 0x14], ebx
jmp 0x10029487
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
lea ecx, [ebp + 0x14]
push eax
call fcn.1002c1d0
push 0x20
call fcn.10030d66
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x100294df
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx]
lea ecx, [ebx + 0xc]
shr eax, 4
and eax, 1
mov dword [ebx], 0x1003d430
mov dword [esp + 0x18], eax
call fcn.10024250
mov edx, dword [esp + 0x18]
mov dword [ebx], 0x1003d544
mov dword [ebx + 4], 0xffffffff
mov dword [ebx + 8], edx
mov dword [esp + 0x24], ebx
jmp 0x100294e7
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
lea ecx, [ebp + 0x14]
push eax
call fcn.1002c1d0
push 0x20
call fcn.10030d66
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10029541
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx]
lea ecx, [ebx + 0xc]
not eax
shr eax, 4
and eax, 1
mov dword [ebx], 0x1003d430
mov dword [esp + 0x18], eax
call fcn.10024250
mov edx, dword [esp + 0x18]
mov dword [ebx], 0x1003d544
mov dword [ebx + 4], 0xffffffff
mov dword [ebx + 8], edx
mov dword [esp + 0x28], ebx
jmp 0x10029549
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
lea ecx, [ebp + 0x14]
push eax
call fcn.1002c1d0
mov ecx, dword [esp + 0x24]
push 0
push 0
lea ebx, [ecx + 0xc]
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], ebx
call fcn.1001cce0
xor ecx, ecx
mov dword [esp + 0x30], 0x1003d41c
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
mov ax, word [esi]
mov dword [esp + 0xc4], 2
cmp ax, cx
je 0x10029661
cmp ax, word [esp + 0x20]
je 0x10029661
push 1
lea edx, [esp + 0x1c]
push 1
push edx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.1002c5f0
mov ax, word [esi]
mov cl, al
and ecx, 0xff
cmp cx, ax
jne 0x100295ce
mov dl, al
mov byte [esp + 0x13], dl
jmp 0x100295d3
mov byte [esp + 0x13], 0
push 1
lea eax, [esp + 0x17]
push 1
push eax
lea ecx, [esp + 0x3c]
call fcn.1001d720
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029655
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002964a
mov ax, word [esi]
test ax, ax
jne 0x10029597
mov ecx, esi
mov edx, dword [ecx]
mov dword [ebp + 0x98], edx
mov eax, dword [ecx + 4]
mov dword [ebp + 0x9c], eax
mov edx, dword [ecx + 8]
mov dword [ebp + 0xa0], edx
mov edx, esi
mov eax, dword [ecx + 0xc]
mov ecx, edi
mov dword [ebp + 0xa4], eax
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xd0]
mov dword [edi], edx
mov edx, dword [ebp + 0xd4]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov ecx, ebp
mov dword [edi + 0xc], edx
call fcn.10020550
test eax, eax
jne 0x100296d9
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x100296ce
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jne 0x100296e6
mov ebx, 0x1003d470
mov al, byte [ebx]
xor edi, edi
test al, al
je 0x10029708
movsx eax, byte [edi + ebx]
push eax
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x10029708
mov al, byte [edi + ebx + 1]
inc edi
test al, al
jne 0x100296ee
mov al, byte [edi + ebx]
cmp al, 0x30
jl 0x1002979e
cmp al, 0x39
jg 0x1002979e
lea edx, [edi + 6]
xor ecx, ecx
cmp edi, edx
mov dword [esp + 0x20], ecx
jae 0x10029746
mov al, byte [edi + ebx]
cmp al, 0x30
jl 0x10029742
cmp al, 0x39
jg 0x10029742
movsx eax, al
lea ecx, [ecx + ecx*4]
inc edi
cmp edi, edx
lea ecx, [eax + ecx*2 - 0x30]
jb 0x10029728
mov dword [esp + 0x20], ecx
mov al, byte [edi + ebx]
test al, al
je 0x10029766
movsx ecx, al
push ecx
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x10029766
mov al, byte [edi + ebx + 1]
inc edi
test al, al
jne 0x1002974d
mov dl, byte [ebx + edi]
add ebx, edi
xor eax, eax
test dl, dl
sete al
test eax, eax
je 0x1002979e
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [edx + 4], eax
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x2c]
call fcn.1001d7c0
test eax, eax
je 0x1002979e
push eax
call fcn.10030c72
add esp, 4
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jl 0x100297d6
lea edi, [eax + eax]
cmp edi, 8
jge 0x100297b9
mov edi, 8
mov eax, dword [ebx + 0x10]
lea edx, [edi*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [ebx + 0x10], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x14], edi
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x24]
push 0
mov dword [edx + ecx*4], eax
mov ecx, dword [ebx + 0xc]
inc ecx
push 0
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0xd4]
push 1
push 0
mov edi, dword [ecx]
lea ecx, [esp + 0x64]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x10029820
push 0
mov ecx, ebp
call fcn.10021350
mov edi, eax
jmp 0x100298ef
lea edx, [esp + 0x20]
mov ecx, ebp
push edx
mov dword [esp + 0x24], edi
call fcn.10021130
push 0
push 0
mov edi, eax
push 1
push 0x7c
lea ecx, [esp + 0x78]
mov dword [esp + 0x3c], edi
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100298ef
push 0x18
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10029872
mov ecx, eax
call fcn.10027130
mov dword [esp + 0x14], eax
jmp 0x1002987a
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x14]
lea ecx, [ebp + 0x14]
push edi
call fcn.1002c1d0
mov eax, dword [esp + 0x2c]
add edi, 4
push eax
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x100298eb
mov ecx, ebp
call fcn.10023660
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebp
call fcn.10021130
push eax
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x100298b3
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0xc]
cmp ecx, eax
jl 0x10029923
lea esi, [eax + eax]
cmp esi, 8
jge 0x10029906
mov esi, 8
mov eax, dword [ebx + 0x10]
lea edx, [esi*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [ebx + 0x10], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x14], esi
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [edx + ecx*4], edi
mov edx, dword [ebx + 0xc]
inc edx
mov dword [ebx + 0xc], edx
mov eax, dword [ebx + 0x14]
mov ecx, edx
cmp ecx, eax
jl 0x10029966
lea esi, [eax + eax]
cmp esi, 8
jge 0x10029949
mov esi, 8
mov ecx, dword [ebx + 0x10]
lea eax, [esi*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [ebx + 0x10], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x14], esi
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [ebx + 0xc], ecx
mov edi, dword [ebp + 0x60]
lea esi, [edx + 1]
cmp esi, edi
jle 0x100299cc
cmp edi, 8
jge 0x10029992
mov edi, 8
cmp esi, edi
jle 0x100299af
add edi, edi
cmp esi, edi
jle 0x100299af
lea edi, [esi + 0xb]
mov eax, edi
and eax, 0x80000007
jns 0x100299ad
dec eax
or eax, 0xfffffff8
inc eax
sub edi, eax
mov edx, dword [ebp + 0x5c]
lea ecx, [edi*4]
push ecx
push edx
call fcn.10030943
add esp, 8
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x60], edi
mov eax, dword [ebp + 0x58]
cmp eax, esi
jge 0x10029a3f
mov edx, dword [esp + 0x1c]
mov ecx, eax
shl ecx, 0x1e
sub ecx, eax
inc edx
add ecx, edx
mov edx, dword [ebp + 0x5c]
shl ecx, 2
lea esi, [edx + eax*4]
test esi, esi
je 0x10029a37
cmp ecx, 8
jae 0x100299f9
test ecx, ecx
jbe 0x10029a37
jmp 0x10029a25
push 4
push ecx
xor edi, edi
call fcn.1003114a
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jle 0x10029a1d
mov ecx, eax
mov eax, edi
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x44]
lea esi, [esi + eax*4]
test edx, edx
je 0x10029a37
jle 0x10029a37
mov ecx, edx
mov edx, ecx
xor eax, eax
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
inc eax
mov dword [ebp + 0x58], eax
mov ecx, dword [ebp + 0x5c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc4], 0xffffffff
mov dword [ecx + edx*4], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], 0x1003d41c
jmp 0x10029f63
mov eax, esi
mov ecx, dword [eax]
mov dword [ebp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 0xa0], ecx
mov ecx, esi
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [ebp + 0xa4], edx
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0xcc]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0xc8]
mov eax, dword [ebp + 0xd0]
mov dword [edi], ecx
mov ecx, dword [ebp + 0xd4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029add
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029ad2
push 8
call fcn.10030d66
mov ebx, eax
add esp, 4
mov dword [esp + 0x18], ebx
test ebx, ebx
mov dword [esp + 0xc4], 3
je 0x10029c1a
mov edx, dword [esp + 0xcc]
push 0
push 0
push 1
mov edi, dword [edx]
push 0
lea ecx, [esp + 0x64]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x10029b3d
push 0
mov ecx, ebp
call fcn.10021350
mov dword [ebx], 0x1003d4cc
mov dword [ebx + 4], eax
jmp 0x10029c1c
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
mov dword [esp + 0x18], edi
call fcn.10021130
push 0
push 0
mov edi, eax
push 1
push 0x7c
lea ecx, [esp + 0x78]
mov dword [esp + 0x3c], edi
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x10029c0d
push 0x18
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10029b8d
mov ecx, eax
call fcn.10027130
mov ebx, eax
jmp 0x10029b8f
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
call fcn.1002c1d0
mov ecx, dword [esp + 0x2c]
lea edi, [ebx + 4]
push ecx
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x10029bfc
mov ecx, ebp
call fcn.10023660
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.10021130
push eax
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x54]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x10029bc4
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [ebx], 0x1003d4cc
mov dword [ebx + 4], eax
jmp 0x10029c1c
mov eax, edi
mov dword [ebx], 0x1003d4cc
mov dword [ebx + 4], eax
jmp 0x10029c1c
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
mov dword [esp + 0xc8], 0xffffffff
call fcn.1002c1d0
mov ecx, ebp
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029cae
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029ca3
mov ax, word [esi]
xor ebx, ebx
cmp ax, bx
je 0x10029d4a
and eax, 0xffff
push eax
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x10029d4a
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029d3e
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029d33
mov ax, word [esi]
cmp ax, bx
jne 0x10029cbc
mov ax, word [esi]
cmp ax, 0x3c
je 0x10029f82
cmp ax, 0x27
je 0x10029f82
push ebx
push ebx
lea ecx, [esp + 0x38]
call fcn.1001cce0
mov dword [esp + 0x30], 0x1003d41c
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
mov ax, word [esi]
mov dword [esp + 0xc4], 5
cmp ax, bx
je 0x10029e45
cmp ax, 0x29
je 0x10029e45
mov cl, al
and ecx, 0xff
cmp cx, ax
jne 0x10029db2
mov dl, byte [esi]
mov byte [esp + 0x13], dl
jmp 0x10029db7
mov byte [esp + 0x13], 0
push 1
lea eax, [esp + 0x17]
push 1
push eax
lea ecx, [esp + 0x3c]
call fcn.1001d720
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x10029e39
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x10029e2e
mov ax, word [esi]
test ax, ax
jne 0x10029d93
mov edi, dword [esp + 0x3c]
xor ebx, ebx
test edi, edi
jne 0x10029e54
mov edi, 0x1003d470
mov al, byte [edi]
xor esi, esi
test al, al
je 0x10029e76
movsx ecx, byte [esi + edi]
push ecx
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x10029e76
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x10029e5c
mov al, byte [esi + edi]
cmp al, 0x30
jl 0x10029ecb
cmp al, 0x39
jg 0x10029ecb
lea edx, [esi + 6]
xor ebx, ebx
cmp esi, edx
mov eax, esi
jae 0x10029ea8
mov cl, byte [eax + edi]
cmp cl, 0x30
jl 0x10029ea8
cmp cl, 0x39
jg 0x10029ea8
movsx ecx, cl
lea esi, [ebx + ebx*4]
inc eax
cmp eax, edx
lea ebx, [ecx + esi*2 - 0x30]
jb 0x10029e8c
mov cl, byte [eax + edi]
add eax, edi
test cl, cl
je 0x10029ecb
mov esi, eax
movsx edx, byte [esi]
push edx
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x10029ecb
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10029eb3
push 0x20
call fcn.10030d66
mov esi, eax
add esp, 4
test esi, esi
je 0x10029efb
lea ecx, [esi + 0xc]
mov dword [esi], 0x1003d430
call fcn.10024250
mov dword [esi], 0x1003d538
mov dword [esi + 4], 0
mov dword [esi + 8], ebx
jmp 0x10029efd
xor esi, esi
push esi
lea ecx, [ebp + 0x14]
call fcn.1002c1d0
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x44]
cmp ecx, eax
jl 0x10029f3a
lea edi, [eax + eax]
cmp edi, 8
jge 0x10029f1d
mov edi, 8
mov ecx, dword [ebp + 0x48]
lea eax, [edi*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x4c], edi
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x48]
mov ebx, esi
mov dword [esp + 0xc4], 0xffffffff
mov dword [eax + edx*4], esi
mov edx, dword [ebp + 0x44]
mov eax, dword [esp + 0x3c]
inc edx
mov dword [ebp + 0x44], edx
mov dword [esp + 0x30], 0x1003d41c
test eax, eax
je 0x1002a9d4
push eax
call fcn.10030c72
add esp, 4
mov ecx, ebp
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
sub ax, 0x3c
push 0x20
neg ax
sbb eax, eax
and al, 0xe9
add eax, 0x3e
mov dword [esp + 0x24], eax
call fcn.10030d66
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10029fcc
lea ecx, [ebx + 0xc]
mov dword [ebx], 0x1003d430
call fcn.10024250
mov dword [ebx], 0x1003d538
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0xfffffffd
mov dword [esp + 0x1c], ebx
jmp 0x10029fd2
xor ebx, ebx
mov dword [esp + 0x1c], ebx
push ebx
lea ecx, [ebp + 0x14]
call fcn.1002c1d0
mov ecx, esi
lea eax, [ebp + 0x98]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, edi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
lea eax, [ebp + 0xc8]
mov edx, dword [ebp + 0xc8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x1002a04b
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002a040
push 0
push 0
lea ecx, [esp + 0x38]
call fcn.1001cce0
xor ecx, ecx
mov dword [esp + 0x30], 0x1003d41c
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
mov ax, word [esi]
mov dword [esp + 0xc4], 4
cmp ax, cx
je 0x1002a146
cmp ax, word [esp + 0x20]
je 0x1002a146
push 1
lea ecx, [esp + 0x30]
push 1
push ecx
lea ecx, [ebx + 0xc]
mov dword [esp + 0x38], eax
call fcn.1002c5f0
mov ax, word [esi]
mov dl, al
and edx, 0xff
cmp dx, ax
jne 0x1002a0b7
mov byte [esp + 0x13], al
jmp 0x1002a0bc
mov byte [esp + 0x13], 0
push 1
lea ecx, [esp + 0x17]
push 1
push ecx
lea ecx, [esp + 0x3c]
call fcn.1001d720
mov edx, esi
lea eax, [ebp + 0x98]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, esi
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, edi
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [ebp + 0xc8]
mov ecx, edi
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x1002a13a
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002a12f
mov ax, word [esi]
test ax, ax
jne 0x1002a081
mov ecx, esi
mov edx, dword [ecx]
mov dword [ebp + 0x98], edx
mov eax, dword [ecx + 4]
mov dword [ebp + 0x9c], eax
mov edx, dword [ecx + 8]
mov dword [ebp + 0xa0], edx
mov eax, dword [ecx + 0xc]
mov ecx, edi
mov dword [ebp + 0xa4], eax
mov edx, dword [ecx]
mov dword [esi], edx
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov edx, dword [ecx + 8]
mov dword [esi + 8], edx
mov edx, dword [ebp + 0xcc]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp + 0xc8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0xd0]
mov dword [edi], ecx
mov ecx, dword [ebp + 0xd4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x1002a1bc
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002a1b1
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x1002a1c9
mov edi, 0x1003d470
mov al, byte [edi]
xor esi, esi
test al, al
je 0x1002a1eb
movsx edx, byte [esi + edi]
push edx
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x1002a1eb
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x1002a1d1
mov al, byte [esi + edi]
cmp al, 0x30
jl 0x1002a265
cmp al, 0x39
jg 0x1002a265
lea ecx, [esi + 6]
xor ebx, ebx
cmp esi, ecx
jae 0x1002a219
mov al, byte [esi + edi]
cmp al, 0x30
jl 0x1002a219
cmp al, 0x39
jg 0x1002a219
movsx eax, al
lea edx, [ebx + ebx*4]
inc esi
cmp esi, ecx
lea ebx, [eax + edx*2 - 0x30]
jb 0x1002a1ff
mov al, byte [esi + edi]
test al, al
je 0x1002a239
movsx ecx, al
push ecx
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x1002a239
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x1002a220
mov dl, byte [edi + esi]
add edi, esi
xor eax, eax
test dl, dl
sete al
test eax, eax
je 0x1002a265
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xc]
mov dword [eax + 8], ebx
call fcn.1001d7c0
test eax, eax
je 0x1002a265
push eax
call fcn.10030c72
add esp, 4
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x44]
cmp ecx, eax
jl 0x1002a299
lea esi, [eax + eax]
cmp esi, 8
jge 0x1002a27c
mov esi, 8
mov eax, dword [ebp + 0x48]
lea edx, [esi*4]
push edx
push eax
call fcn.10030943
add esp, 8
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x4c], esi
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x48]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xc4], 0xffffffff
mov dword [edx + ecx*4], ebx
mov edx, dword [ebp + 0x44]
mov eax, dword [esp + 0x3c]
inc edx
mov dword [ebp + 0x44], edx
mov dword [esp + 0x30], 0x1003d41c
jmp 0x10029f63
push 0x28
call fcn.10030d66
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1002a2f6
lea ecx, [ebx + 8]
mov dword [ebx], 0x1003d430
call fcn.10024250
mov dword [ebx], 0x1003d52c
mov dword [ebx + 4], 0xffffffff
jmp 0x1002a2f8
xor ebx, ebx
lea ecx, [ebp + 0x14]
push ebx
call fcn.1002c1d0
cmp word [edi], 0x3f
jne 0x1002a324
cmp dword [edi + 4], 1
jne 0x1002a324
mov edi, dword [esp + 0xcc]
mov ecx, ebp
push edi
call fcn.10028db0
mov dword [ebx + 0x1c], eax
jmp 0x1002a71a
mov eax, esi
mov ecx, dword [eax]
mov dword [ebp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 0xa0], ecx
mov ecx, esi
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [ebp + 0xa4], edx
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0xcc]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0xc8]
mov eax, dword [ebp + 0xd0]
mov dword [edi], ecx
mov ecx, dword [ebp + 0xd4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov ecx, ebp
call fcn.10020550
test eax, eax
jne 0x1002a39c
mov ecx, ebp
call fcn.10020550
test eax, eax
je 0x1002a391
mov edx, dword [ebp + 0xb0]
push 0xc
mov dword [esp + 0x28], edx
call fcn.10030d66
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
mov dword [esp + 0xc4], 6
je 0x1002a4ee
mov eax, dword [esp + 0xcc]
push 0
push 0
push 1
mov ecx, dword [eax]
push 0
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x64]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x1002a401
push 0
mov ecx, ebp
call fcn.10021350
jmp 0x1002a4dc
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x28]
push eax
mov ecx, ebp
mov dword [esp + 0x2c], edx
call fcn.10021130
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x40]
mov dword [esp + 0x30], eax
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x1002a4d8
push 0x18
call fcn.10030d66
add esp, 4
test eax, eax
je 0x1002a455
mov ecx, eax
call fcn.10027130
mov dword [esp + 0x14], eax
jmp 0x1002a45d
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x14]
lea ecx, [ebp + 0x14]
push edi
call fcn.1002c1d0
mov ecx, dword [esp + 0x20]
add edi, 4
push ecx
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x78]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x1002a4ce
mov ecx, ebp
call fcn.10023660
lea edx, [esp + 0x28]
mov ecx, ebp
push edx
call fcn.10021130
push eax
mov ecx, edi
call fcn.1002c1d0
push 0
push 0
push 1
push 0x7c
lea ecx, [esp + 0x78]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x1002a496
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jmp 0x1002a4dc
mov eax, dword [esp + 0x20]
mov dword [edi], 0x1003d4e4
mov dword [edi + 4], eax
mov dword [edi + 8], 1
jmp 0x1002a4f0
xor edi, edi
push edi
lea ecx, [ebp + 0x14]
call fcn.1002c1d0
mov dword [ebx + 0x1c], edi
mov eax, dword [ebp + 0x90]
test eax, eax
mov edx, eax
jne 0x1002a50d
mov edx, 0x1003d420
mov eax, dword [ebp + 0xb0]
mov ecx, dword [esp + 0x24]
sub eax, ecx
lea ecx, [edx + ecx*2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x18]
mov edi, ecx
cmp edi, 8
jge 0x1002a533
mov edi, 8
mov edx, dword [ebx + 0x10]
add edx, eax
mov dword [esp + 0x2c], edx
inc edx
cmp edx, edi
jle 0x1002a55f
add edi, edi
cmp edx, edi
jle 0x1002a55f
mov edx, dword [esp + 0x2c]
lea edi, [edx + 0xc]
mov edx, edi
and edx, 0x80000007
jns 0x1002a55d
dec edx
or edx, 0xfffffff8
inc edx
sub edi, edx
cmp edi, ecx
jle 0x1002a580
mov ecx, dword [ebx + 0x14]
lea eax, [edi + edi]
push eax
push ecx
call fcn.10030943
mov dword [ebx + 0x14], eax
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov dword [ebx + 0x18], edi
mov edx, dword [ebx + 0x10]
lea ecx, [eax + eax]
mov eax, dword [ebx + 0x14]
lea eax, [eax + edx*2]
test eax, eax
je 0x1002a5a9
mov edi, dword [esp + 0x18]
test edi, edi
je 0x1002a5a9
test ecx, ecx
je 0x1002a5a9
dec ecx
sub edi, eax
inc ecx
mov dl, byte [eax + edi]
mov byte [eax], dl
inc eax
dec ecx
jne 0x1002a5a0
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
add edi, eax
mov dword [ebx + 0x10], edi
mov eax, edi
xor edi, edi
mov word [ecx + eax*2], di
push edi
push edi
lea ecx, [esp + 0x80]
call fcn.1001cce0
mov dword [esp + 0x78], 0x1003d41c
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 0xb0]
cmp edi, eax
mov dword [esp + 0xc4], 7
jge 0x1002a656
cmp edi, dword [ebp + 0x94]
jl 0x1002a609
xor eax, eax
jmp 0x1002a613
mov edx, dword [ebp + 0x90]
mov ax, word [edx + edi*2]
mov cl, al
push 1
and cx, 0xff
push 1
cmp cx, ax
lea ecx, [esp + 0x80]
setne dl
dec edx
and edx, eax
lea eax, [esp + 0x1b]
push eax
mov byte [esp + 0x1f], dl
call fcn.1001d720
mov eax, dword [ebp + 0xb0]
inc edi
cmp edi, eax
jl 0x1002a5fd
mov eax, dword [esp + 0x84]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x1002a65e
mov dword [esp + 0x1c], 0x1003d470
lea ecx, [esp + 0x44]
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.1002b000
add esp, 8
test eax, eax
je 0x1002a694
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [ecx], 0
sete al
test eax, eax
je 0x1002a694
mov edx, dword [esp + 0x44]
mov dword [ebx + 4], edx
mov dword [ebx + 0x1c], 0
jmp 0x1002a6f8
mov dword [ebx + 4], 0xffffffff
mov eax, dword [ebp + 0x88]
cmp dword [ebp + 0x80], eax
jl 0x1002a6dc
lea edi, [eax + eax]
cmp edi, 8
jge 0x1002a6b6
mov edi, 8
mov ecx, dword [ebp + 0x84]
lea eax, [edi*4]
push eax
push ecx
call fcn.10030943
add esp, 8
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x7c], eax
mov dword [ebp + 0x88], edi
mov edx, dword [ebp + 0x80]
mov eax, dword [ebp + 0x84]
mov dword [eax + edx*4], ebx
mov eax, dword [ebp + 0x80]
inc eax
mov dword [ebp + 0x80], eax
mov ecx, ebp
call fcn.10023660
lea ecx, [esp + 0x78]
mov dword [esp + 0xc4], 0xffffffff
call fcn.1001d8c0
mov edi, dword [esp + 0xcc]
mov ecx, dword [edi]
lea edx, [esp + 0x44]
mov dword [esp + 0x44], ecx
push edx
mov ecx, ebp
call fcn.10021130
mov dword [ebx + 0x20], eax
cmp word [esi], 0x7c
jne 0x1002a757
mov ecx, ebp
call fcn.10023660
mov eax, dword [edi]
mov ecx, ebp
push eax
call fcn.1001e620
mov ecx, ebp
mov dword [ebx + 0x24], eax
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
mov ecx, ebp
mov dword [ebx + 0x24], 0
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
test ax, ax
je 0x1002a792
and eax, 0xffff
push eax
call fcn.10031fbb
add esp, 4
test eax, eax
je 0x1002a792
mov ecx, ebp
call fcn.10023660
mov ax, word [esi]
test ax, ax
jne 0x1002a771
mov ax, word [esi]
cmp ax, 0x30
jb 0x1002a899
cmp ax, 0x39
ja 0x1002a899
lea ecx, [esp + 0x54]
call fcn.1001d700
mov ax, word [esi]
mov dword [esp + 0xc4], 8
test ax, ax
je 0x1002a806
cmp ax, 0x29
je 0x1002a806
mov cl, al
and ecx, 0xff
cmp cx, ax
jne 0x1002a7e0
mov dl, byte [esi]
mov byte [esp + 0x13], dl
jmp 0x1002a7e5
mov byte [esp + 0x13], 0
push 1
lea eax, [esp + 0x17]
push 1
push eax
lea ecx, [esp + 0x60]
call fcn.1001d720
mov ecx, ebp
call fcn.10023660
mov ax, word [esi]
test ax, ax
jne 0x1002a7c5
mov eax, dword [esp + 0x60]
mov dword [esp + 0x18], 0
test eax, eax
mov dword [esp + 0x28], eax
jne 0x1002a822
mov dword [esp + 0x28], 0x1003d470
lea ecx, [esp + 0x18]
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.1002b000
push 0x20
call fcn.10030d66
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
mov byte [esp + 0xc4], 9
je 0x1002a85b
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, eax
call fcn.1002c6d0
mov ebx, eax
jmp 0x1002a85d
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
mov byte [esp + 0xc8], 8
call fcn.1002c1d0
push ebx
lea ecx, [ebp + 0x3c]
call fcn.1002c1d0
lea ecx, [esp + 0x54]
mov dword [esp + 0xc4], 0xffffffff
call fcn.1001d8c0
mov ecx, ebp
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
mov edx, dword [esp + 0xcc]
push 0
push 0
push 1
mov edi, dword [edx]
push 0
lea ecx, [esp + 0x9c]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x1002a975
mov ax, word [esi]
cmp ax, 0x3a
je 0x1002a975
cmp ax, 0x29
je 0x1002a975
push 0
push 0
push 1
push 0x28
lea ecx, [esp + 0xac]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x1002a975
mov ax, word [esi]
xor ecx, ecx
add eax, 0xffffffd3
cmp eax, 0x46
ja case.0x1002a912.50
xor edx, edx
mov dl, byte [eax + 0x1002ab9c]
jmp dword [edx*4 + 0x1002ab84]
mov ecx, 8
test ebx, ebx
je 0x1002a948
not ecx
and edi, ecx
jmp 0x1002a94a
mov ecx, 1
jmp case.0x1002a912.50
mov ecx, 2
jmp case.0x1002a912.50
mov ecx, 4
jmp case.0x1002a912.50
not ecx
mov ebx, 1
and edi, ecx
jmp 0x1002a94a
or edi, ecx
mov ecx, ebp
call fcn.10023660
push 0
push 0
push 1
push 0
lea ecx, [esp + 0x9c]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
je 0x1002a8c6
cmp word [esi], 0x3a
je 0x1002a9c3
push 0
push 0
push 1
push 0x28
lea ecx, [esp + 0xbc]
call fcn.1001e980
push eax
mov ecx, esi
call fcn.1001e9e0
test eax, eax
jne 0x1002a9bd
mov eax, dword [esp + 0xcc]
push 0
mov ecx, ebp
mov dword [eax], edi
call fcn.10021350
mov ecx, ebp
mov ebx, eax
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
cmp word [esi], 0x3a
jne 0x1002a9ca
mov ecx, ebp
call fcn.10023660
push edi
mov ecx, ebp
call fcn.1001e620
mov ebx, eax
mov ecx, ebp
call fcn.10023660
mov eax, ebx
jmp 0x1002ab10
push 0x1c
call fcn.10030d66
add esp, 4
test eax, eax
je 0x1002aa08
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx]
mov ecx, eax
and edx, 0x10
push edx
call fcn.10022ac0
mov edi, eax
jmp 0x1002aa0a
xor edi, edi
lea ecx, [ebp + 0x14]
push edi
call fcn.1002c1d0
mov ebx, dword [ebp + 8]
push 0x20
inc ebx
mov eax, ebx
mov dword [ebp + 8], ebx
mov dword [esp + 0x18], eax
call fcn.10030d66
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
mov dword [esp + 0xc4], 0xa
je 0x1002aa5b
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx]
mov ecx, ebx
shr edx, 4
and edx, 1
push edx
push ecx
mov ecx, eax
call fcn.1002c6a0
mov ebx, eax
jmp 0x1002aa5d
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
mov dword [esp + 0xc8], 0xffffffff
call fcn.1002c1d0
lea esi, [edi + 4]
push ebx
mov ecx, esi
call fcn.1002c1d0
mov edx, dword [esp + 0xcc]
mov ecx, ebp
mov eax, dword [edx]
push eax
call fcn.1001e620
push eax
mov ecx, esi
call fcn.1002c1d0
push 0x20
call fcn.10030d66
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
mov dword [esp + 0xc4], 0xb
je 0x1002aad4
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x14]
not edx
shr edx, 4
and edx, 1
push edx
push ecx
mov ecx, eax
call fcn.1002c6a0
mov ebx, eax
jmp 0x1002aad6
xor ebx, ebx
push ebx
lea ecx, [ebp + 0x14]
mov dword [esp + 0xc8], 0xffffffff
call fcn.1002c1d0
push ebx
mov ecx, esi
call fcn.1002c1d0
mov esi, dword [esp + 0x14]
push 0
push esi
lea ecx, [ebp + 0x28]
call fcn.10026de0
mov edx, dword [ebp + 0x34]
mov ecx, ebp
mov dword [edx + esi*4], edi
call fcn.10023660
mov eax, edi
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb8
ret 4