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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], edx
mov cl, byte [edi + 0x15]
and cl, 2
mov dword [esp + 0x14], edx
mov byte [esp + 0x22], cl
je 0x100287bc
mov edx, dword [eax]
mov dword [esp + 0x58], edx
test cl, cl
lea edx, [eax + 4]
cmove edx, eax
movsx eax, byte [esi]
mov dword [esp + 0x24], edx
test eax, eax
je case.default.0x10028af6
cmp eax, 0x25
je 0x1002882d
mov edx, esi
mov dword [esp + 0x14], edx
nop
mov al, byte [esi + 1]
inc esi
test al, al
je 0x100287ec
cmp al, 0x25
jne 0x100287e0
mov ebx, dword [edi + 0x10]
mov ecx, esi
sub ecx, edx
add ebx, ecx
cmp ebx, dword [edi + 8]
jb 0x10028807
push ecx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10028820
test ecx, ecx
je 0x10028820
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], ebx
push edx
add eax, ebx
push eax
call fcn.1013c1a0
add esp, 0xc
cmp byte [esi], 0
je case.default.0x10028af6
mov edx, dword [esp + 0x24]
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
je 0x10029eff
or ebx, 0xffffffff
mov byte [esp + 0x2f], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x2c], 0
mov byte [esp + 0x2e], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x2d], 0
mov dword [esp + 0x30], ebx
lea eax, [ecx - 0x20]
cmp eax, 0x4c
ja case.0x10028883.34
movzx eax, byte [eax + 0x10029f80]
jmp dword [eax*4 + 0x10029f50]
mov byte [esp + 0x12], 1
jmp 0x10028a61
mov byte [esp + 0x2b], 0x2b
jmp 0x10028a61
mov byte [esp + 0x2b], 0x20
jmp 0x10028a61
mov byte [esp + 0x2c], 1
jmp 0x10028a61
mov byte [esp + 0x23], 1
jmp 0x10028a61
mov byte [esp + 0x2f], 1
jmp 0x10028a61
mov byte [esp + 0x2e], 0x2c
jmp 0x10028a61
inc esi
lea eax, [ecx - 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x5c], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jl 0x1002890d
mov edi, eax
cmp ecx, 0x39
ja 0x100288fd
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x100288e6
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x5c], esi
and eax, 0x7fffffff
mov dword [esp + 0x34], eax
cmp ecx, 0x2e
je 0x10028a60
jmp 0x10028a5b
cmp byte [esp + 0x22], 0
je 0x10028960
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x10028945
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x48]
jmp 0x10028967
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x58]
mov dword [edx + 4], eax
call fcn.1004e6e0
mov dword [esp + 0x4c], edx
jmp 0x10028967
add dword [esp + 0x24], 4
mov eax, dword [edx]
mov dword [esp + 0x34], eax
test eax, eax
jns 0x1002898b
mov byte [esp + 0x12], 1
cmp eax, 0x80000001
jl 0x10028983
neg eax
mov dword [esp + 0x34], eax
jmp 0x1002898b
mov dword [esp + 0x34], 0
mov al, byte [esi + 1]
lea edx, [esi + 1]
movsx ecx, al
cmp al, 0x2e
je 0x10028a61
cmp al, 0x6c
je 0x10028a61
mov dword [esp + 0x5c], edx
jmp case.0x10028883.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
cmp ecx, 0x2a
jne 0x10028a2f
cmp byte [esp + 0x22], 0
je 0x100289f5
mov ebx, dword [esp + 0x58]
mov edx, dword [ebx + 4]
cmp dword [ebx], edx
jg 0x100289dc
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ebx, dword [esp + 0x48]
jmp 0x100289fc
mov eax, dword [ebx + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [ebx + 4], eax
call fcn.1004e6e0
mov ebx, eax
mov dword [esp + 0x4c], edx
jmp 0x100289fc
add dword [esp + 0x24], 4
mov ebx, dword [edx]
mov dword [esp + 0x30], ebx
test ebx, ebx
jns 0x10028a24
cmp ebx, 0x80000001
jl 0x10028a1d
movsx ecx, byte [esi + 1]
neg ebx
inc esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x5c], esi
jmp 0x10028a5b
or ebx, 0xffffffff
mov dword [esp + 0x30], ebx
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
jmp 0x10028a5b
xor ebx, ebx
cmp ecx, 0x30
jl 0x10028a51
cmp ecx, 0x39
ja 0x10028a4d
lea ebx, [ebx + ebx*4]
inc esi
lea ebx, [ebx - 0x18]
lea ebx, [ecx + ebx*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x10028a36
mov dword [esp + 0x5c], esi
and ebx, 0x7fffffff
mov dword [esp + 0x30], ebx
cmp ecx, 0x6c
jne case.0x10028883.34
dec esi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
je case.0x10028883.34
mov edx, dword [esp + 0x24]
jmp 0x10028870
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x2d], 1
mov dword [esp + 0x5c], esi
cmp ecx, 0x6c
jne case.0x10028883.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
mov byte [esp + 0x2d], 2
mov eax, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x18], eax
mov edx, 0x10166518
mov dword [esp + 0x50], 0x10166518
mov byte [esp + 0x13], 0x11
movsx eax, byte [edx]
cmp ecx, eax
je 0x10028ad1
add edx, 6
inc esi
cmp edx, 0x101665a2
jl 0x10028ab4
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x50]
jmp 0x10028aea
lea eax, [esi + esi*2]
mov dl, byte [eax*2 + 0x1016651b]
lea ecx, [eax*2 + 0x10166518]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x13], dl
movzx eax, dl
cmp eax, 0x10
ja case.default.0x10028af6
jmp dword [eax*4 + 0x10029fd0]
mov byte [esp + 0x2d], 1
mov byte [esp + 0x2e], 0
test byte [ecx + 2], 1
je 0x10028b9e
cmp byte [esp + 0x22], 0
je 0x10028b58
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x10028b45
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dl, byte [esp + 0x2b]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jmp 0x10028c23
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
call fcn.1004e6e0
jmp 0x10028b7c
mov al, byte [esp + 0x2d]
mov ecx, dword [esp + 0x18]
test al, al
je 0x10028b74
cmp al, 2
mov eax, dword [ecx]
jne 0x10028b76
add dword [esp + 0x24], 8
mov ecx, dword [ecx + 4]
jmp 0x10028b7e
mov eax, dword [ecx]
add dword [esp + 0x24], 4
cdq
mov ecx, edx
test ecx, ecx
jg 0x10028b34
jl 0x10028b88
test eax, eax
jae 0x10028b34
neg eax
mov dl, 0x2d
mov dword [esp + 0x18], eax
adc ecx, 0
neg ecx
mov dword [esp + 0x1c], ecx
jmp 0x10028c1f
cmp byte [esp + 0x22], 0
je 0x10028bec
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x10028bcf
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x10028c1d
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
call fcn.1004e6e0
mov dword [esp + 0x1c], edx
mov ecx, edx
mov dword [esp + 0x18], eax
jmp 0x10028c1d
mov al, byte [esp + 0x2d]
mov ecx, dword [esp + 0x18]
test al, al
je 0x10028c0c
cmp al, 2
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
jne 0x10028c12
add dword [esp + 0x24], 8
mov ecx, dword [ecx + 4]
jmp 0x10028c19
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
add dword [esp + 0x24], 4
xor ecx, ecx
mov dword [esp + 0x1c], ecx
xor dl, dl
mov byte [esp + 0x2b], dl
or eax, ecx
jne 0x10028c2b
mov byte [esp + 0x2c], al
cmp byte [esp + 0x2f], 0
je 0x10028c48
mov ecx, dword [esp + 0x34]
xor eax, eax
test dl, dl
setne al
sub ecx, eax
cmp ebx, ecx
cmovl ebx, ecx
mov dword [esp + 0x30], ebx
cmp ebx, 0x25
jge 0x10028c63
mov esi, 0x46
lea eax, [esp + 0x98]
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], eax
jmp 0x10028cb0
mov eax, ebx
cdq
mov esi, eax
mov ecx, edx
add esi, 0xa
mov dword [esp + 0x40], esi
adc ecx, 0
cmp byte [esp + 0x2e], 0
je 0x10028c92
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add esi, eax
mov dword [esp + 0x40], esi
adc ecx, edx
push ecx
push esi
mov ecx, edi
call fcn.10028690
mov ecx, eax
mov dword [esp + 0x40], eax
add esp, 8
mov dword [esp + 0x60], ecx
test ecx, ecx
je case.default.0x10028af6
dec esi
add esi, eax
cmp byte [esp + 0x13], 0xf
mov dword [esp + 0x14], esi
jne 0x10028d60
mov eax, dword [esp + 0x18]
mov ebx, 0xcccccccd
mul ebx
lea edi, [ebx - 1]
mov dword [esp + 0x48], eax
mov esi, edx
mov eax, dword [esp + 0x18]
mul edi
mov edi, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x1c]
mul ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x1c]
mov edx, 0xcccccccc
mul edx
add ecx, esi
mov dword [esp + 0x48], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
adc ecx, 0
xor eax, eax
add ebx, ecx
mov ecx, dword [esp + 0x48]
adc eax, eax
add ecx, ebx
adc edx, eax
shrd ecx, edx, 3
shr edx, 3
lea eax, [ecx + ecx*4]
add eax, eax
sub edi, eax
cmp edi, 4
jge 0x10028d42
push 0
push 0xa
push edx
push ecx
call fcn.1014b850
cmp eax, 1
jne 0x10028d44
test edx, edx
jne 0x10028d44
xor edi, edi
mov esi, dword [esp + 0x14]
movzx eax, byte [edi*2 + 0x10166f61]
mov byte [esi - 1], al
sub esi, 2
movzx eax, byte [edi*2 + str.thstndrd]
mov byte [esi], al
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x48], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x3c], eax
nop word [eax + eax]
push eax
push ecx
push ebx
push edi
dec esi
call fcn.1014b850
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x18]
push ebx
mov al, byte [eax + ecx]
push edi
mov byte [esi], al
call fcn.1014b7e0
mov ecx, dword [esp + 0x14]
mov ebx, edx
mov edi, eax
mov eax, dword [esp + 0x3c]
test ebx, ebx
ja 0x10028d90
jb 0x10028dc8
test edi, edi
jne 0x10028d90
mov eax, dword [esp + 0x38]
mov ecx, esi
mov ebx, dword [esp + 0x30]
sub eax, ecx
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x40]
lea edx, [esi - 1]
add edx, eax
cmp edx, ebx
jge 0x10028dfd
mov eax, ebx
sub eax, edx
mov edx, ebx
nop
dec ecx
mov byte [ecx], 0x30
sub eax, 1
jne 0x10028df0
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x2e], 0
je 0x10028e45
lea eax, [edx - 1]
mov ebx, 3
cdq
idiv ebx
mov esi, eax
sub ecx, esi
mov dword [esp + 0x14], ecx
lea ebx, [edx + 1]
xor edx, edx
test esi, esi
jle 0x10028e41
lea eax, [esi + edx]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
sub ebx, 1
jne 0x10028e3c
mov al, byte [esp + 0x2e]
inc edx
dec esi
mov ebx, 3
mov byte [edx + ecx], al
inc edx
test esi, esi
jg 0x10028e20
mov esi, dword [esp + 0x40]
mov al, byte [esp + 0x2b]
test al, al
je 0x10028e54
dec ecx
mov dword [esp + 0x14], ecx
mov byte [ecx], al
cmp byte [esp + 0x2c], 0
je 0x10028e84
mov eax, dword [esp + 0x50]
mov al, byte [eax + 5]
test al, al
je 0x10028e84
movzx eax, al
add eax, 0x1015fbc8
mov dl, byte [eax]
test dl, dl
je 0x10028e84
dec ecx
lea eax, [eax + 1]
mov byte [ecx], dl
mov dl, byte [eax]
test dl, dl
jne 0x10028e74
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x38]
dec esi
sub eax, ecx
add esi, eax
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x12]
mov eax, dword [esp + 0x34]
sub eax, esi
mov dword [esp + 0x34], eax
test eax, eax
jle 0x10029e88
test dl, dl
jne 0x10029b62
mov dword [esp + 0x3c], eax
xor ecx, ecx
cdq
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x10]
add eax, dword [esp + 0x38]
adc ecx, edx
test ecx, ecx
jl 0x10029b4c
jg 0x10028ed6
cmp eax, dword [edi + 8]
jb 0x10029b4c
push edx
push dword [esp + 0x3c]
mov ecx, edi
call fcn.1002a020
mov edx, eax
add esp, 8
test edx, edx
jle 0x10029b62
jmp 0x10029b50
cmp byte [esp + 0x22], 0
je 0x10028f50
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x10028f0f
mov dl, byte [esp + 0x13]
xorps xmm0, xmm0
jmp 0x10028f5d
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 0x10]
test al, 8
je 0x10028f2d
movsd xmm0, qword [ecx]
mov dl, byte [esp + 0x13]
jmp 0x10028f5d
test al, 0x24
je 0x10028f41
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.1014b9d0
mov dl, byte [esp + 0x13]
jmp 0x10028f5d
test al, 0x12
je 0x10028f06
call fcn.1004e760
mov dl, byte [esp + 0x13]
jmp 0x10028f5d
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 8
movsd xmm0, qword [ecx]
test ebx, ebx
jns 0x10028f68
mov ebx, 6
jmp 0x10028f76
cmp ebx, 0x5f5e100
mov eax, 0x5f5e100
cmovg ebx, eax
mov dword [esp + 0x30], ebx
cmp dl, 1
jne 0x10028f85
mov edx, ebx
neg edx
jmp 0x10028f8f
cmp dl, 3
mov edx, ebx
je 0x10028f8f
lea edx, [ebx + 1]
cmp byte [esp + 0x23], 0
mov ecx, 0x1a
mov eax, 0x10
movaps xmm3, xmm0
cmovne eax, ecx
lea ecx, [esp + 0x70]
push eax
call fcn.1002cfd0
mov al, byte [esp + 0x75]
add esp, 4
test al, al
je 0x10029074
cmp al, 2
jne 0x10028ff4
cmp byte [esp + 0x2f], 0
mov ebx, str.null
mov eax, 0x10168a10
cmove ebx, eax
mov esi, ebx
mov dword [esp + 0x14], ebx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10028fe0
sub esi, ecx
and esi, 0x3fffffff
jmp 0x10028e91
cmp byte [esp + 0x2f], 0
je 0x10029015
mov eax, dword [esp + 0x7c]
mov ecx, 0x3e8
mov byte [eax], 0x39
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], 1
jmp 0x10029078
cmp byte [esp + 0x70], 0x2d
lea ecx, [esp + 0x98]
mov eax, dword [str._Inf]
mov dword [esp + 0x98], eax
mov al, byte [0x10168a18]
mov byte [esp + 0x9c], al
mov dword [esp + 0x14], ecx
je 0x1002905b
mov al, byte [esp + 0x2b]
test al, al
je 0x10029050
mov byte [esp + 0x98], al
jmp 0x1002905b
lea ecx, [esp + 0x99]
mov dword [esp + 0x14], ecx
mov esi, ecx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10029060
sub esi, ecx
and esi, 0x3fffffff
jmp 0x10028e8d
mov ecx, dword [esp + 0x78]
cmp byte [esp + 0x70], 0x2d
mov edx, 0x2d
movzx eax, byte [esp + 0x2b]
cmove eax, edx
dec ecx
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x40], ecx
cmp al, 3
jne 0x100290cb
test ebx, ebx
jle 0x100290a4
dec ebx
mov dword [esp + 0x30], ebx
cmp byte [esp + 0x2c], 0
sete byte [esp + 0x2d]
cmp ecx, 0xfffffffc
jl 0x100290c4
cmp ecx, ebx
jg 0x100290c4
sub ebx, ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x30], ebx
jmp 0x100290dd
mov byte [esp + 0x13], 2
jmp 0x100290d7
mov dl, byte [esp + 0x23]
mov byte [esp + 0x2d], dl
cmp al, 2
jne 0x100290dd
xor ecx, ecx
mov dword [esp + 0x40], ecx
xor eax, eax
lea esi, [esp + 0x98]
test ecx, ecx
cmovg eax, ecx
cdq
mov dword [esp + 0x1c], eax
mov eax, ebx
mov dword [esp + 0x18], edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
adc dword [esp + 0x18], edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x18], edx
add eax, 0xf
mov edx, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x2e], 0
mov dword [esp + 0x18], edx
je 0x1002914f
test ecx, ecx
jle 0x1002914f
add ecx, 2
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
test edx, edx
jl 0x10029174
jg 0x1002915a
cmp eax, 0x46
jbe 0x10029174
push edx
push eax
mov ecx, edi
call fcn.10028690
add esp, 8
mov dword [esp + 0x60], eax
mov esi, eax
test eax, eax
je case.default.0x10028af6
mov dh, byte [esp + 0x23]
test ebx, ebx
mov eax, dword [esp + 0x38]
setg dl
mov dword [esp + 0x14], esi
or dl, dh
or dl, byte [esp + 0x2c]
mov byte [esp + 0x2c], dl
test al, al
je 0x10029196
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jns 0x100291aa
mov byte [esi], 0x30
inc esi
jmp 0x1002920c
mov edi, dword [esp + 0x40]
mov bl, byte [esp + 0x2e]
cmp ecx, dword [esp + 0x74]
jge 0x100291c7
mov eax, dword [esp + 0x7c]
add eax, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov al, byte [eax]
jmp 0x100291c9
mov al, 0x30
mov byte [esi], al
inc esi
test bl, bl
je 0x100291ef
mov eax, 0xaaaaaaab
mov ecx, edi
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
mov ecx, dword [esp + 0x1c]
jne 0x100291ef
cmp edi, 1
jbe 0x100291ef
mov byte [esi], 0x2c
inc esi
sub edi, 1
jns 0x100291b2
mov ebx, dword [esp + 0x30]
mov dl, byte [esp + 0x2c]
mov dh, byte [esp + 0x23]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x40]
test dl, dl
je 0x10029214
mov byte [esi], 0x2e
inc esi
add eax, 1
jns 0x1002922e
nop dword [eax]
test ebx, ebx
jle 0x1002924d
mov byte [esi], 0x30
dec ebx
inc esi
add eax, 1
js 0x10029220
test ebx, ebx
jle 0x1002924d
dec ebx
cmp ecx, dword [esp + 0x74]
jge 0x10029244
mov eax, dword [esp + 0x7c]
add eax, ecx
inc ecx
mov al, byte [eax]
jmp 0x10029246
mov al, 0x30
mov byte [esi], al
inc esi
test ebx, ebx
jg 0x10029232
cmp byte [esp + 0x2d], 0
je 0x1002927e
test dl, dl
je 0x1002927e
cmp byte [esi - 1], 0x30
jne 0x1002926a
nop
dec esi
mov byte [esi], 0
cmp byte [esi - 1], 0x30
je 0x10029260
cmp byte [esi - 1], 0x2e
jne 0x1002927e
test dh, dh
je 0x1002927a
mov byte [esi], 0x30
inc esi
jmp 0x1002927e
dec esi
mov byte [esi], 0
cmp byte [esp + 0x13], 2
jne 0x10029308
mov eax, dword [esp + 0x50]
lea edx, [esi + 2]
mov ecx, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x48], edx
mov ebx, ecx
movzx eax, byte [eax + 4]
neg ebx
test ecx, ecx
cmovns ebx, ecx
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
sets al
lea eax, [eax*2 + 0x2b]
mov byte [esi + 1], al
mov esi, edx
cmp ebx, 0x64
jl 0x100292de
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x30]
mov byte [esi], al
inc esi
imul eax, ecx, 0x64
sub ebx, eax
mov eax, 0x66666667
imul ebx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x30]
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
add al, al
sub bl, al
add bl, 0x30
mov byte [esi + 1], bl
add esi, 2
mov ecx, dword [esp + 0x14]
mov byte [esi], 0
sub esi, ecx
cmp byte [esp + 0x2f], 0
je 0x10028e8d
mov dl, byte [esp + 0x12]
test dl, dl
jne 0x10029b43
mov ebx, dword [esp + 0x34]
cmp esi, ebx
jge 0x10029b43
mov eax, ebx
mov edx, ebx
sub eax, esi
mov esi, eax
mov dword [esp + 0x48], eax
cmp ebx, esi
jl 0x10029357
mov edi, ecx
sub edi, esi
mov al, byte [edx + edi]
mov byte [edx + ecx], al
dec edx
cmp edx, esi
jge 0x10029348
mov edi, dword [esp + 0x64]
xor eax, eax
cmp byte [esp + 0x38], al
setne al
test esi, esi
je 0x10029372
push esi
add eax, ecx
push 0x30
push eax
call fcn.1013ad10
add esp, 0xc
mov esi, ebx
jmp 0x10028e8d
cmp byte [esp + 0x22], 0
jne 0x10029e86
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
mov dword [ecx], eax
jmp 0x10029e86
lea ebx, [esp + 0x98]
mov byte [esp + 0x98], 0x25
mov dword [esp + 0x14], ebx
mov esi, 1
jmp 0x10028e91
cmp byte [esp + 0x22], 0
je 0x1002946e
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x10029458
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
je 0x10029458
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100293fd
cmp byte [ecx + 0x12], 1
jne 0x100293fd
mov edx, dword [ecx + 8]
jmp 0x1002940b
test dl, 1
jne 0x10029458
mov dl, 1
call fcn.1004f390
mov edx, eax
mov esi, 1
mov dword [esp + 0x1c], esi
test edx, edx
je 0x10029461
mov cl, byte [edx]
mov byte [esp + 0x98], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x1002953b
mov cl, byte [edx + esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x1002953b
mov byte [esp + esi + 0x98], cl
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 4
jl 0x10029433
jmp 0x1002953b
mov esi, 1
mov dword [esp + 0x1c], esi
mov byte [esp + 0x98], 0
jmp 0x1002953b
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
cmp ecx, 0x80
jae 0x10029492
mov byte [esp + 0x98], cl
mov esi, 1
jmp 0x10029537
mov eax, ecx
cmp ecx, 0x800
jae 0x100294c1
shr eax, 6
and cl, 0x3f
and al, 0x1f
mov esi, 2
sub al, 0x40
add cl, 0x80
mov byte [esp + 0x98], al
mov byte [esp + 0x99], cl
jmp 0x10029537
mov dl, cl
and dl, 0x3f
add dl, 0x80
cmp ecx, 0x10000
jae 0x100294fd
shr eax, 0xc
mov esi, 3
shr ecx, 6
and al, 0xf
sub al, 0x20
mov byte [esp + 0x9a], dl
and cl, 0x3f
mov byte [esp + 0x98], al
add cl, 0x80
mov byte [esp + 0x99], cl
jmp 0x10029537
shr eax, 0x12
mov esi, 4
and al, 7
mov byte [esp + 0x9b], dl
sub al, 0x10
mov byte [esp + 0x98], al
mov eax, ecx
shr eax, 0xc
shr ecx, 6
and al, 0x3f
add al, 0x80
and cl, 0x3f
add cl, 0x80
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], cl
mov dword [esp + 0x1c], esi
cmp ebx, 1
jle 0x100296e3
mov eax, dword [esp + 0x34]
sub eax, ebx
mov dword [esp + 0x48], 1
mov ecx, eax
mov dword [esp + 0x50], 0
inc eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], eax
cmp eax, 1
jle 0x100295c8
cmp byte [esp + 0x12], 0
jne 0x100295c8
mov eax, ecx
xor ecx, ecx
cdq
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x10]
add eax, dword [esp + 0x38]
adc ecx, edx
test ecx, ecx
jl 0x100295a5
jg 0x1002958e
cmp eax, dword [edi + 8]
jb 0x100295a5
push edx
push dword [esp + 0x3c]
mov ecx, edi
call fcn.1002a020
mov edx, eax
add esp, 8
test edx, edx
jle 0x100295c2
jmp 0x100295b0
mov edx, dword [esp + 0x3c]
nop dword [eax]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x100295b0
xor edx, edx
mov dword [esp + 0x34], edx
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x100295e6
push esi
lea edx, [esp + 0x9c]
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029606
test esi, esi
je 0x10029606
push esi
lea eax, [esp + 0x9c]
mov dword [edi + 0x10], ecx
push eax
mov eax, dword [edi + 4]
sub eax, esi
add eax, ecx
push eax
call fcn.1013c1a0
add esp, 0xc
dec ebx
cmp ebx, 1
jle 0x100296e3
mov ecx, dword [esp + 0x50]
mov eax, esi
mov esi, dword [esp + 0x48]
cdq
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], edx
lea eax, [ebx - 1]
cdq
cmp ecx, edx
jl 0x10029639
jg 0x10029631
cmp esi, eax
jbe 0x10029639
mov ecx, edx
mov esi, eax
mov dword [esp + 0x50], ecx
push ecx
push esi
push dword [esp + 0x48]
push dword [esp + 0x24]
call fcn.1014b520
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
add eax, edx
adc ecx, dword [esp + 0x38]
test ecx, ecx
jl 0x1002967d
jg 0x1002966a
cmp eax, dword [edi + 8]
jb 0x1002967d
push dword [esp + 0x38]
mov ecx, edi
push edx
call fcn.1002a020
mov edx, dword [esp + 0x44]
add esp, 8
cmp byte [edi + 0x14], 0
jne 0x100296df
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], ecx
sub dword [esp + 0x30], edx
add dword [esp + 0x30], eax
add eax, edx
cmp eax, dword [edi + 8]
jb 0x100296ad
push edx
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x100296c6
test edx, edx
je 0x100296c6
push edx
push dword [esp + 0x34]
sub ecx, edx
mov dword [edi + 0x10], eax
add ecx, eax
push ecx
call fcn.1013c1a0
add esp, 0xc
mov ecx, dword [esp + 0x50]
sub ebx, esi
shld ecx, esi, 1
add esi, esi
mov dword [esp + 0x50], ecx
cmp ebx, 1
jg 0x10029623
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
jmp 0x10029b0b
cmp byte [esp + 0x22], 0
je 0x1002976a
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x1002970f
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x10029779
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x10029727
mov dword [esp + 0x14], ecx
mov dl, 5
jmp 0x10029779
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x1002974a
cmp byte [ecx + 0x12], 1
jne 0x1002974a
mov ecx, dword [ecx + 8]
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x10029779
test dl, 1
je 0x10029759
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x14], ecx
jmp 0x10029779
mov dl, 1
call fcn.1004f390
mov ecx, eax
mov dword [esp + 0x14], eax
mov dl, 5
jmp 0x10029779
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1002978b
mov ecx, 0x101675d3
mov dword [esp + 0x14], ecx
jmp 0x10029817
cmp dl, 6
jne 0x10029817
cmp dword [edi + 0x10], 0
jne 0x10029813
cmp dword [edi + 0xc], 0
je 0x10029813
cmp dword [esp + 0x34], 0
jne 0x10029813
test ebx, ebx
jns 0x10029813
cmp byte [edi + 0x14], 0
jne 0x10029813
mov eax, dword [edi]
mov dword [edi + 4], ecx
test eax, eax
je 0x100297e2
cmp ecx, dword [eax + 0x168]
jae 0x100297e2
cmp ecx, dword [eax + 0x15c]
jb 0x100297d1
mov eax, 0x80
jmp 0x100297f0
cmp ecx, dword [eax + 0x160]
jb 0x100297e2
movzx eax, word [eax + 0x136]
jmp 0x100297f0
push ecx
call dword [0x10178a64]
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [edi + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100297f6
or byte [edi + 0x15], 4
sub ecx, edx
and ecx, 0x7fffffff
xor esi, esi
mov dword [edi + 0x10], ecx
jmp 0x10028e8d
mov dword [esp + 0x60], ecx
test ebx, ebx
js 0x10029874
cmp byte [esp + 0x23], 0
je 0x10029855
mov esi, ecx
test ebx, ebx
jle 0x1002984e
mov al, byte [esi]
dec ebx
test al, al
je 0x1002984e
inc esi
cmp al, 0xc0
jb 0x1002984a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1002984a
nop dword [eax]
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x10029840
test ebx, ebx
jg 0x10029828
sub esi, ecx
jmp 0x10029b0b
xor esi, esi
test ebx, ebx
jle 0x10028e8d
nop
cmp byte [esi + ecx], 0
je 0x10028e8d
inc esi
cmp esi, ebx
jl 0x10029860
jmp 0x10028e8d
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10029880
sub esi, edx
and esi, 0x7fffffff
jmp 0x10029b00
cmp dl, 0xe
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x22], 0
mov dword [esp + 0x3c], eax
je 0x1002990d
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x100298c4
mov dword [esp + 0x18], 0
jmp 0x10029924
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x100298d8
xor esi, esi
jmp 0x10029918
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100298f5
cmp byte [ecx + 0x12], 1
jne 0x100298f5
mov esi, dword [ecx + 8]
jmp 0x10029918
test dl, 1
je 0x100298fe
xor esi, esi
jmp 0x10029918
mov dl, 1
call fcn.1004f390
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x1002991c
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov esi, dword [ecx]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
test esi, esi
jne 0x1002993a
cmp byte [esp + 0x13], 0xa
mov esi, str.NULL
mov eax, str._NULL_
cmovne esi, eax
mov dword [esp + 0x1c], esi
mov eax, ebx
xorps xmm0, xmm0
cdq
movlpd qword [esp + 0x40], xmm0
mov ecx, eax
mov ebx, dword [esp + 0x40]
or ecx, edx
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], edx
mov dword [esp + 0x40], eax
je 0x100299dc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
nop word [eax + eax]
mov al, byte [ebx + esi]
test al, al
je 0x100299dc
cmp al, byte [esp + 0x3c]
jne 0x10029997
add dword [esp + 0x50], 1
adc dword [esp + 0x40], 0
cmp byte [esp + 0x23], 0
je 0x100299c0
and al, 0xc0
cmp al, 0xc0
jne 0x100299c0
mov al, byte [ebx + esi + 1]
and al, 0xc0
cmp al, 0x80
jne 0x100299c0
nop
mov al, byte [ebx + esi + 2]
add ebx, 1
adc edx, 0
and al, 0xc0
cmp al, 0x80
je 0x100299b0
mov eax, dword [esp + 0x38]
add ebx, 1
adc edx, 0
add eax, 0xffffffff
mov dword [esp + 0x38], eax
adc ecx, 0xffffffff
mov dword [esp + 0x30], edx
or eax, ecx
jne 0x10029980
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 0x50]
je 0x100299f6
cmp byte [esp + 0x13], 0xa
mov dword [esp + 0x18], 1
je 0x100299fe
mov dword [esp + 0x18], 0
mov ecx, ebx
mov eax, edx
add ecx, 3
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x40]
adc ecx, eax
test ecx, ecx
jl 0x10029a3f
jg 0x10029a1b
cmp esi, 0x46
jbe 0x10029a3f
push ecx
push esi
mov ecx, edi
call fcn.10028690
add esp, 8
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], eax
mov ecx, eax
test eax, eax
je case.default.0x10028af6
mov edx, dword [esp + 0x30]
jmp 0x10029a4a
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x18], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
je 0x10029a69
mov eax, dword [esp + 0x3c]
mov esi, 1
mov byte [ecx], al
xor eax, eax
jmp 0x10029a71
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], eax
movlpd qword [esp + 0x40], xmm0
test edx, edx
jl 0x10029aeb
jg 0x10029a85
test ebx, ebx
je 0x10029aeb
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
nop dword [eax]
mov edx, dword [esp + 0x40]
mov dl, byte [edx + eax]
mov byte [esi + ecx], dl
add esi, 1
mov byte [esp + 0x2f], dl
adc edi, 0
cmp dl, byte [esp + 0x3c]
mov edx, dword [esp + 0x30]
jne 0x10029acf
mov al, byte [esp + 0x2f]
mov byte [esi + ecx], al
add esi, 1
mov eax, dword [esp + 0x1c]
adc edi, 0
add dword [esp + 0x40], 1
adc dword [esp + 0x38], 0
cmp dword [esp + 0x38], edx
jl 0x10029aa0
jg 0x10029ae7
cmp dword [esp + 0x40], ebx
jb 0x10029aa0
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x18], 0
je 0x10029afc
mov edx, dword [esp + 0x3c]
mov byte [esi + ecx], dl
add esi, 1
mov byte [esi + ecx], 0
cmp byte [esp + 0x23], 0
je 0x10028e8d
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x10028e8d
lea edx, [esi - 1]
test edx, edx
js 0x10028e8d
mov al, byte [ecx + edx]
lea ecx, [ebx + 1]
and al, 0xc0
cmp al, 0x80
cmovne ecx, ebx
sub edx, 1
mov ebx, ecx
mov ecx, dword [esp + 0x14]
jns 0x10029b22
mov dword [esp + 0x34], ebx
jmp 0x10028e8d
mov ebx, dword [esp + 0x14]
jmp 0x10028e95
mov edx, dword [esp + 0x3c]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x10029b50
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x10029b7b
push esi
mov edx, ebx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029b94
test esi, esi
je 0x10029b94
mov eax, dword [edi + 4]
push esi
sub eax, esi
mov dword [edi + 0x10], ecx
add eax, ecx
push ebx
push eax
call fcn.1013c1a0
add esp, 0xc
cmp byte [esp + 0x12], 0
je 0x10029ebf
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov esi, dword [edi + 0x10]
cdq
add esi, eax
adc ecx, edx
test ecx, ecx
jl 0x10029bd0
jg 0x10029bb8
cmp esi, dword [edi + 8]
jb 0x10029bd0
push edx
push eax
mov ecx, edi
call fcn.1002a020
mov edx, eax
add esp, 8
test edx, edx
jle 0x10029ebf
jmp 0x10029bd4
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x10029bd4
jmp 0x10029ebf
test byte [edi + 0x15], 1
je case.default.0x10028af6
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
cmp byte [esp + 0x2c], 0
mov esi, dword [ecx]
je 0x10029c94
test esi, esi
je 0x10029e86
test dword [esi + 4], 0x800
jne 0x10029e86
mov ebx, dword [esi + 8]
test ebx, ebx
jne 0x10029c2b
xor ecx, ecx
jmp 0x10029c3f
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029c30
sub ecx, edx
and ecx, 0x3fffffff
mov edx, dword [edi + 0x10]
add edx, ecx
cmp edx, dword [edi + 8]
jb 0x10029c58
push ecx
mov edx, ebx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029c71
test ecx, ecx
je 0x10029c71
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], edx
add eax, edx
push ebx
push eax
call fcn.1013c1a0
add esp, 0xc
mov ecx, dword [edi]
test byte [esi + 4], 3
jne 0x10029c80
mov eax, dword [esi + 0x24]
test eax, eax
jg 0x10029c8c
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x10029c73
jmp 0x10029e86
mov dword [ecx + 0x44], eax
jmp 0x10029e86
test esi, esi
je 0x10029e86
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10029e86
mov edx, dword [edi + 0x10]
mov ebx, dword [esi]
add edx, ecx
push ecx
cmp edx, dword [edi + 8]
jb 0x10029cc2
mov edx, ebx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029cd6
mov eax, dword [edi + 4]
sub eax, ecx
mov dword [edi + 0x10], edx
add eax, edx
push ebx
push eax
call fcn.1013c1a0
add esp, 0xc
mov ebx, dword [edi]
mov esi, dword [esi]
test ebx, ebx
je 0x10029e86
cmp dword [ebx + 0x44], 0xfffffffe
jne 0x10029e86
mov edx, dword [ebx + 0x10c]
test edx, edx
je 0x10029e86
mov edx, dword [edx + 0xf4]
test edx, edx
je 0x10029e86
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x48], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029d11
sub ecx, dword [esp + 0x48]
cmp esi, edx
jb 0x10029e86
lea eax, [edx + ecx]
cmp esi, eax
jae 0x10029e86
sub esi, edx
mov dword [ebx + 0x44], esi
jmp 0x10029e86
test byte [edi + 0x15], 1
je case.default.0x10028af6
mov ecx, dword [esp + 0x18]
add dword [esp + 0x24], 4
mov esi, dword [ecx]
mov edx, dword [esi + 0xc]
test edx, edx
je 0x10029da9
cmp byte [esp + 0x23], 0
jne 0x10029da9
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029d61
sub ecx, esi
and ecx, 0x3fffffff
mov esi, dword [edi + 0x10]
add esi, ecx
cmp esi, dword [edi + 8]
jb 0x10029d8a
push ecx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029e86
test ecx, ecx
je 0x10029e86
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], esi
push edx
add eax, esi
push eax
call fcn.1013c1a0
jmp 0x10029e83
cmp dword [esi + 8], 0
je 0x10029e4c
mov edx, dword [esi + 4]
test edx, edx
je 0x10029e26
mov ecx, edx
lea ebx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029dc0
sub ecx, ebx
mov ebx, dword [edi + 0x10]
and ecx, 0x3fffffff
add ebx, ecx
cmp ebx, dword [edi + 8]
jb 0x10029de6
push ecx
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029dff
test ecx, ecx
je 0x10029dff
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], ebx
push edx
add eax, ebx
push eax
call fcn.1013c1a0
add esp, 0xc
mov ecx, dword [edi + 0x10]
inc ecx
cmp ecx, dword [edi + 8]
jb 0x10029e1b
push 1
mov edx, 0x10168a2c
mov ecx, edi
call fcn.1002a300
add esp, 4
jmp 0x10029e26
mov eax, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov byte [eax + ecx - 1], 0x2e
mov edx, dword [esi + 8]
test edx, edx
jne 0x10029e34
xor ecx, ecx
jmp 0x10029d70
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029e40
jmp 0x10029d68
test edx, edx
je 0x10029e61
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10029e55
jmp 0x10029d68
mov eax, dword [esi + 0x14]
test dword [eax + 4], 0x800
mov ecx, dword [eax + 0x10]
push ecx
je 0x10029e78
push str._join__u_
jmp 0x10029e7d
push str._subquery__u_
push edi
call fcn.1002aa10
add esp, 0xc
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x10029ea3
mov edx, dword [esp + 0x14]
mov ecx, edi
push esi
call fcn.1002a300
add esp, 4
jmp 0x10029ebf
test esi, esi
je 0x10029ebf
mov eax, dword [edi + 4]
push esi
push dword [esp + 0x18]
sub eax, esi
mov dword [edi + 0x10], ecx
add eax, ecx
push eax
call fcn.1013c1a0
add esp, 0xc
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x10029ed6
mov ecx, dword [edi]
mov edx, ebx
call fcn.10027de0
xor eax, eax
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
inc esi
movsx eax, byte [esi]
test eax, eax
jne 0x100287d3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.1013942d
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x10]
inc ecx
cmp ecx, dword [edi + 8]
jb 0x10029f2e
push 1
mov edx, 0x10168a04
mov ecx, edi
call fcn.1002a300
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.1013942d
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov byte [eax + ecx - 1], 0x25
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1013942d
mov esp, ebp
pop ebp
ret