Function at 0x100308b0
Capabilities:
Print debug messages

Disassembly:
push ebp
lea ebp, [esp - 0x110]
sub esp, 0x110
push 0xfffffffffffffffe
push 0x100cdd60
push 0x1005f2e0
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x100d1040]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x10c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 0x118]
mov dword [ebp - 0x78], esi
mov eax, dword [ebp + 0x11c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x74], edx
mov eax, dword [ebp + 0x124]
mov dword [ebp - 0x88], eax
mov eax, dword [esi]
xor ebx, ebx
cmp eax, ebx
je 0x1003092d
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov dword [esi], ebx
mov dword [esi + 0x34], ebx
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov word [eax], cx
lea edi, [esi + 4]
lea edx, [ebp - 0x5c]
push edx
call fcn.10037e80
add esp, 4
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
push 4
lea esi, [ebp - 0x50]
call fcn.1002fb40
mov eax, dword [ebp - 0x58]
cmp eax, ebx
je 0x100309a0
mov ecx, dword [ebp - 0x5c]
lea eax, [ecx + eax*2 - 2]
cmp word [eax], 0x2e
jne 0x100309c9
sub eax, ecx
sar eax, 1
cmp eax, ebx
jl 0x100309a0
lea ecx, [eax + 1]
lea esi, [ebp - 0x84]
lea edx, [ebp - 0x5c]
call fcn.1002f240
mov edi, eax
lea eax, [ebp - 0x50]
call fcn.1002f070
mov eax, dword [ebp - 0x84]
push eax
call fcn.1005758d
add esp, 4
lea eax, [ebp - 0x3c]
call fcn.1002f790
cmp dword [ebp + 0x120], ebx
jl 0x100309fe
mov ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x34], ecx
jne 0x100309e7
mov eax, 1
cmp ecx, 0x40
jl 0x100309d2
mov eax, ecx
shr eax, 2
jmp 0x100309dc
cmp eax, ecx
je 0x100309a0
sub eax, 2
jmp 0x10030968
cmp ecx, 8
jl 0x100309dc
mov eax, 8
lea edi, [ecx + eax]
lea esi, [ebp - 0x3c]
call fcn.1002ffe0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 0x120]
mov eax, dword [ebp - 0x34]
mov dword [ecx + eax*4], edx
inc dword [ebp - 0x34]
jmp 0x1003117b
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0x38], ebx
jle 0x10030aab
nop
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x3c]
mov edi, dword [eax + ebx*4]
xor esi, esi
cmp dword [edi + 0x38], esi
jle 0x10030a3f
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + esi*4]
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x50]
push eax
call fcn.10035fa0
add esp, 8
test eax, eax
je 0x10030a58
inc esi
cmp esi, dword [edi + 0x38]
jl 0x10030a20
mov ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x34], ecx
jne 0x10030a92
mov eax, 1
cmp ecx, 0x40
jl 0x10030a7d
mov eax, ecx
shr eax, 2
jmp 0x10030a87
test esi, esi
jl 0x10030a3f
mov ecx, dword [ebp - 0x24]
mov eax, ecx
lea esi, [ecx*4]
inc ecx
mov dword [ebp - 0x24], ecx
push eax
lea eax, [ebp - 0x3c]
call fcn.100300a0
mov ecx, dword [ebp - 0x30]
mov dword [ecx + esi], ebx
jmp 0x10030a9e
cmp ecx, 8
jl 0x10030a87
mov eax, 8
lea edi, [ecx + eax]
lea esi, [ebp - 0x3c]
call fcn.1002ffe0
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov dword [edx + eax*4], ebx
inc dword [ebp - 0x34]
inc ebx
mov ecx, dword [ebp - 0x28]
cmp ebx, dword [ecx + 0x38]
jl 0x10030a10
cmp dword [ebp - 0x44], 0
jne 0x10030aed
cmp dword [ebp - 0x24], 1
je 0x10030adb
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov edx, dword [ebp - 0x50]
push edx
call fcn.1005758d
mov eax, dword [ebp - 0x5c]
push eax
call fcn.1005758d
mov eax, 0x80004001
jmp 0x10030bd2
mov ecx, dword [ebp - 0x34]
dec ecx
push ecx
push 1
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x34], 2
jl 0x10030e82
cmp dword [ebp - 0x24], 0
je 0x10030b16
push 0x100c56b8
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.10035fa0
add esp, 8
test eax, eax
jne 0x10030e82
lea eax, [ebp - 0x70]
call fcn.1002f790
push 0x200000
call fcn.1005853a
mov ebx, eax
mov dword [ebp - 0x20], ebx
push 0
call fcn.1005758d
add esp, 8
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
push 0
push 0
push 0
push 0
push eax
mov eax, dword [edx + 0x10]
call eax
mov edi, eax
push ebx
test edi, edi
jne 0x10030b6e
mov dword [ebp - 0x24], 0x200000
mov eax, dword [ebp - 0x44]
push eax
lea edi, [ebp - 0x24]
call fcn.10037ec0
add esp, 8
mov edi, eax
test edi, edi
je 0x10030b9c
push ebx
call fcn.1005758d
add esp, 4
lea esi, [ebp - 0x70]
call fcn.1002b190
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.1005758d
mov edx, dword [ebp - 0x5c]
push edx
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
cmp dword [ebp - 0x24], 0
jne 0x10030bfc
push ebx
call fcn.1005758d
add esp, 4
lea esi, [ebp - 0x70]
call fcn.1002b190
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
mov eax, 1
add esp, 8
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x10c]
xor ecx, ebp
call fcn.1005710f
add ebp, 0x110
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp - 0x84], vtable.CBuffer_unsigned_char_.0
xor eax, eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov edi, 0x10000
lea esi, [ebp - 0x84]
call fcn.100320a0
push edi
push 0xff
mov esi, dword [ebp - 0x7c]
push esi
call fcn.10059a00
add esp, 0xc
mov edx, dword [ebp - 0x34]
cmp edx, 0x100
jl 0x10030c6c
push esi
call fcn.1005758d
push ebx
call fcn.1005758d
add esp, 8
lea esi, [ebp - 0x70]
call fcn.1002b190
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov edx, dword [ebp - 0x50]
push edx
call fcn.1005758d
mov eax, dword [ebp - 0x5c]
push eax
jmp 0x10030bc8
xor ecx, ecx
test edx, edx
jle 0x10030ca8
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
mov ebx, dword [edi + 0x3c]
mov eax, dword [ebx + eax*4]
cmp dword [eax + 0x48], 2
jb 0x10030ca3
mov edx, dword [eax + 0x4c]
movzx eax, byte [edx + 1]
shl eax, 8
movzx edx, byte [edx]
or eax, edx
mov dl, byte [esi + eax]
mov byte [ebp + ecx], dl
mov byte [esi + eax], cl
mov edx, dword [ebp - 0x34]
inc ecx
cmp ecx, edx
jl 0x10030c75
sub dword [ebp - 0x24], 1
mov dword [ebp - 0x1c], 0
je 0x10030de6
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
cmp eax, edx
jae 0x10030cee
mov esi, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [ecx + eax + 1]
shl edi, 8
movzx ebx, byte [ecx + eax]
or edi, ebx
cmp byte [edi + esi], 0xff
jne 0x10030ce9
inc eax
cmp eax, edx
jb 0x10030cd0
mov dword [ebp - 0x1c], eax
cmp eax, edx
je 0x10030de3
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
lea ecx, [eax + esi]
mov dword [ebp - 0x90], ecx
movzx eax, byte [eax + esi + 1]
shl eax, 8
movzx ecx, byte [ecx]
or eax, ecx
mov edx, dword [ebp - 0x7c]
add edx, eax
mov dword [ebp - 0x40], edx
movzx ebx, byte [edx]
jmp 0x10030d23
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ebx*4]
mov dword [ebp + 0x108], eax
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x3c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10030dbd
add esi, ecx
mov edi, dword [ebp - 0x24]
inc edi
cmp esi, edi
ja 0x10030dbd
mov edi, dword [eax + 0x4c]
xor eax, eax
test ecx, ecx
jbe 0x10030d68
mov esi, dword [ebp - 0x90]
mov dl, byte [esi]
cmp dl, byte [eax + edi]
jne 0x10030dbd
inc eax
inc esi
cmp eax, ecx
jb 0x10030d58
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x68], ecx
jne 0x10030d99
mov eax, 1
cmp ecx, 0x40
jl 0x10030d81
mov eax, ecx
shr eax, 2
jmp 0x10030d8b
cmp ecx, 8
jl 0x10030d8b
mov eax, 8
lea edi, [ecx + eax]
lea esi, [ebp - 0x70]
call fcn.1002ffe0
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp + 0x108]
mov esi, dword [ebp - 0x68]
mov dword [eax + esi*4], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x30]
mov dword [eax + ebx*4], 0xff
mov cl, byte [ebp + ebx]
mov byte [edx], cl
jmp 0x10030dc4
lea edx, [ebp + ebx]
mov dword [ebp - 0x40], edx
movzx ebx, byte [edx]
cmp ebx, 0xff
jne 0x10030d20
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x24]
jb 0x10030cc0
mov edx, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x40], eax
test edx, edx
jle 0x10030e46
nop
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ecx + eax*4]
cmp ebx, 0xff
je 0x10030e3e
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x68], ecx
jne 0x10030e2f
mov eax, 1
cmp ecx, 0x40
jl 0x10030e17
mov eax, ecx
shr eax, 2
jmp 0x10030e21
cmp ecx, 8
jl 0x10030e21
mov eax, 8
lea edi, [ecx + eax]
lea esi, [ebp - 0x70]
call fcn.1002ffe0
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x68]
mov dword [edx + ecx*4], ebx
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, edx
jl 0x10030df0
push edx
push 0
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x70]
push ecx
lea eax, [ebp - 0x3c]
call fcn.100321d0
mov edx, dword [ebp - 0x7c]
push edx
call fcn.1005758d
mov eax, dword [ebp - 0x20]
push eax
call fcn.1005758d
add esp, 8
lea esi, [ebp - 0x70]
call fcn.1002b190
jmp 0x1003101f
mov esi, 0x100c56c0
mov edi, dword [ebp - 0x50]
mov edx, edi
lea esp, [esp]
movzx eax, word [edx]
add edx, 2
movzx ecx, word [esi]
add esi, 2
cmp ax, cx
jb 0x10030eaa
ja 0x10030eaa
test ax, ax
jne 0x10030e90
jmp 0x10030ebe
mov eax, 0x100c56c8
mov edx, edi
call fcn.10035f60
test eax, eax
jne 0x1003101f
push 0x400
call fcn.1005853a
mov ebx, eax
push 0
call fcn.1005758d
add esp, 8
mov esi, dword [ebp - 0x44]
mov ecx, dword [esi]
push 0
push 0
push 0
push 0
push esi
mov edx, dword [ecx + 0x10]
call edx
mov edi, eax
push ebx
test edi, edi
je 0x10030f17
call fcn.1005758d
add esp, 4
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
mov dword [ebp - 0x20], 0x400
push esi
lea edi, [ebp - 0x20]
call fcn.10037ec0
add esp, 8
mov edi, eax
test edi, edi
je 0x10030f5a
push ebx
call fcn.1005758d
add esp, 4
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov edx, dword [ebp - 0x50]
push edx
call fcn.1005758d
mov eax, dword [ebp - 0x5c]
push eax
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
cmp dword [ebp - 0x20], 0x10
jb 0x10031016
mov byte [ebp + 0x104], 0x52
mov byte [ebp + 0x105], 0x61
mov byte [ebp + 0x106], 0x72
mov byte [ebp + 0x107], 0x21
mov byte [ebp + 0x108], 0x1a
mov byte [ebp + 0x109], 7
mov byte [ebp + 0x10a], 0
xor eax, eax
mov esi, ebx
lea ecx, [ebp + 0x104]
sub esi, ecx
lea ecx, [ebp + eax + 0x104]
mov dl, byte [esi + ecx]
cmp dl, byte [ecx]
jne 0x10031016
inc eax
cmp eax, 7
jb 0x10030fa1
cmp byte [ebx + 9], 0x73
jne 0x10031016
test byte [ebx + 0xa], 1
je 0x10031016
xor edi, edi
cmp dword [ebp - 0x34], edi
jle 0x10031016
jmp 0x10030fd0
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + edi*4]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx + esi*4]
push 0x100c56d0
mov eax, dword [eax + 0x24]
push eax
call fcn.10035fa0
add esp, 8
test eax, eax
je 0x10030ffc
inc edi
cmp edi, dword [ebp - 0x34]
jl 0x10030fd0
jmp 0x10031016
push 1
push edi
lea ecx, [ebp - 0x3c]
call fcn.10030110
push 0
lea eax, [ebp - 0x3c]
call fcn.100300a0
mov ecx, dword [ebp - 0x30]
mov dword [ecx], esi
push ebx
call fcn.1005758d
add esp, 4
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x34], 2
jl 0x1003117b
xor edi, edi
xor eax, eax
inc eax
cmp word [eax*2 + 0x100c56d8], 0
jne 0x10031030
add eax, 1
je 0x10031061
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov edi, eax
xor eax, eax
mov word [edi], ax
mov eax, edi
mov edx, 0x100c56d8
sub edx, edi
lea ebx, [ebx]
movzx ecx, word [eax + edx]
mov word [eax], cx
add eax, 2
test cx, cx
jne 0x10031070
xor esi, esi
cmp dword [ebx + 0x38], esi
jle 0x100310a7
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + esi*4]
push edi
mov edx, dword [eax + 0x24]
push edx
call fcn.10035fa0
add esp, 8
test eax, eax
je 0x10031288
inc esi
cmp esi, dword [ebx + 0x38]
jl 0x10031086
mov dword [ebp - 0x20], 0xffffffff
push edi
call fcn.1005758d
add esp, 4
xor esi, esi
xor eax, eax
jmp 0x100310c0
inc eax
cmp word [eax*2 + 0x100c56e0], 0
jne 0x100310c0
add eax, 1
je 0x100310f1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov esi, eax
xor eax, eax
mov word [esi], ax
mov eax, esi
mov edx, 0x100c56e0
sub edx, esi
lea ebx, [ebx]
movzx ecx, word [eax + edx]
mov word [eax], cx
add eax, 2
test cx, cx
jne 0x10031100
xor edi, edi
cmp dword [ebx + 0x38], edi
jle 0x10031133
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + edi*4]
push esi
mov edx, dword [eax + 0x24]
push edx
call fcn.10035fa0
add esp, 8
test eax, eax
je 0x10031136
inc edi
cmp edi, dword [ebx + 0x38]
jl 0x10031116
or edi, 0xffffffff
push esi
call fcn.1005758d
add esp, 4
or edx, 0xffffffff
or esi, edx
xor eax, eax
cmp dword [ebp - 0x34], eax
jle 0x10031164
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + eax*4]
cmp ecx, dword [ebp - 0x20]
jne 0x10031158
mov edx, eax
cmp ecx, edi
jne 0x1003115e
mov esi, eax
inc eax
cmp eax, dword [ebp - 0x34]
jl 0x1003114b
cmp esi, edx
jle 0x1003117b
test edx, edx
jl 0x1003117b
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + esi*4], eax
mov eax, dword [ebp - 0x30]
mov dword [eax + edx*4], edi
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x28]
jmp 0x10031190
mov ecx, dword [ebp - 0x34]
cmp dword [ebp - 0x40], ecx
jge 0x10030bb3
cmp dword [ebp - 0x44], 0
je 0x100311bf
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
push 0
push 0
push 0
push 0
push eax
mov eax, dword [edx + 0x10]
call eax
mov edi, eax
test edi, edi
jne 0x10030b7e
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + eax*4]
mov dword [ebx + 0x1c], eax
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jge 0x10031290
mov eax, dword [eax + 0x1c]
call eax
mov esi, eax
test esi, esi
je 0x100311f5
mov ecx, dword [esi]
push esi
mov edx, dword [ecx + 4]
call edx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10031204
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov eax, esi
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x28]
test eax, eax
je 0x100313fa
mov dword [ebp - 0x24], 0
mov edx, dword [eax]
lea ecx, [ebp - 0x24]
push ecx
push 0x100c4f74
push eax
mov edx, dword [edx]
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x100312e2
mov ecx, dword [eax]
push esi
push eax
mov edx, dword [ecx + 0xc]
call edx
mov edi, eax
mov eax, dword [ebp - 0x24]
test edi, edi
je 0x100312e2
test eax, eax
je 0x10031258
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10031267
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
mov dword [ebp - 0x20], esi
jmp 0x100310ae
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + ecx*4]
lea edx, [ebp - 0x1c]
push edx
push 0x100c4f14
add eax, 8
push eax
mov eax, dword [ecx + 8]
call eax
mov edi, eax
mov eax, dword [ebp - 0x1c]
test edi, edi
je 0x1003120c
test eax, eax
je 0x100312c1
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
xor edi, edi
cmp eax, edi
je 0x100312f0
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [ebp - 0x8c], 1
mov dword [ebp - 4], edi
cmp dword [ebp - 0x44], edi
je 0x10031344
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x88]
push edx
push 0x100b1678
mov edx, dword [ebp - 0x44]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edi, eax
mov dword [ebp - 0x8c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x100313e6
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 0x100c4f24
push eax
mov eax, dword [ecx]
call eax
mov eax, dword [ebp - 0x20]
cmp eax, edi
jne 0x1003139e
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x10031370
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
add esp, 8
mov dword [ebp - 4], 0xfffffffe
mov eax, 0x80004001
jmp 0x10030bd5
mov edx, dword [eax]
mov ecx, dword [ebp - 0x74]
push ecx
push eax
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
mov dword [ebp - 0x8c], edi
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x100313c1
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov dword [ebp - 4], 0xfffffffe
jmp 0x100313e6
cmp edi, 1
jne 0x10031402
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x100313fa
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
inc dword [ebp - 0x40]
jmp 0x10031190
test edi, edi
je 0x10031436
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10031415
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov eax, dword [ebp - 0x50]
push eax
call fcn.1005758d
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1005758d
mov eax, edi
jmp 0x10030bd2
xor edx, edx
mov word [ebp - 0x6c], dx
xor eax, eax
mov word [ebp - 0x6a], ax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x6c]
push edx
push 0x37
push eax
mov eax, dword [ecx + 0x20]
call eax
mov ax, word [ebp - 0x6c]
test ax, ax
je 0x10031477
cmp ax, 8
mov eax, dword [ebp - 0x64]
je 0x1003146a
mov eax, str.Unknown_error
push eax
lea eax, [ebx + 0x30]
call fcn.1002f010
mov ax, word [ebp - 0x6c]
movzx eax, ax
add eax, 0xfffffffe
cmp eax, 0x3e
ja case.0x10031489.8
movzx ecx, byte [eax + 0x10031790]
jmp dword [ecx*4 + 0x10031788]
lea edx, [ebp - 0x6c]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x1c]
mov esi, eax
test eax, eax
je 0x100314ab
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 4]
call edx
mov eax, dword [ebx]
test eax, eax
je 0x100314b9
mov ecx, dword [eax]
push eax
mov edx, dword [ecx + 8]
call edx
mov dword [ebx], esi
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x3c]
mov edi, dword [edx + eax*4]
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x10031660
xor ecx, ecx
mov eax, 1
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x7c], 1
mov edx, 0x100c57a0
sub edx, eax
nop
movzx ecx, word [eax + edx]
mov word [eax], cx
add eax, 2
test cx, cx
jne 0x10031510
xor esi, esi
mov dword [ebp - 0x80], esi
xor ecx, ecx
mov eax, 1
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov ebx, eax
mov dword [ebp - 0x74], ebx
mov dword [ebp + 0x100], ebx
xor eax, eax
mov word [ebx], ax
mov dword [ebp + 0x108], 1
mov eax, ebx
mov edx, 0x100c57a0
sub edx, ebx
movzx ecx, word [eax + edx]
mov word [eax], cx
add eax, 2
cmp cx, si
jne 0x10031565
mov dword [ebp + 0x104], esi
lea ecx, [ebp - 0x5c]
push ecx
lea eax, [ebp - 0x84]
lea ecx, [ebp + 0x100]
lea esi, [ebp - 0x68]
call fcn.10038060
add esp, 4
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x78]
add esi, 0x10
cmp eax, esi
je 0x1003163d
mov dword [esi + 4], 0
mov edx, dword [esi]
xor eax, eax
mov word [edx], ax
mov ecx, dword [ebp - 0x20]
mov edi, dword [ecx + 4]
inc edi
cmp edi, dword [esi + 8]
je 0x1003161c
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov ebx, eax
cmp dword [esi + 8], 0
jle 0x1003160b
xor eax, eax
cmp dword [esi + 4], eax
jle 0x10031600
lea ebx, [ebx]
mov ecx, dword [esi]
mov dx, word [ecx + eax*2]
mov word [ebx + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x100315f0
mov eax, dword [esi]
push eax
call fcn.1005758d
add esp, 4
mov dword [esi], ebx
mov ecx, dword [esi + 4]
xor edx, edx
mov word [ebx + ecx*2], dx
mov dword [esi + 8], edi
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
mov ecx, dword [esi]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x10031623
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 4]
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x68]
push eax
call fcn.1005758d
push ebx
call fcn.1005758d
mov ecx, dword [ebp - 0x88]
push ecx
call fcn.1005758d
add esp, 0xc
jmp 0x10031753
xor esi, esi
test eax, eax
jle 0x10031692
mov ebx, dword [ebp - 0x50]
lea esp, [esp]
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
push eax
push ebx
call fcn.10035fa0
add esp, 8
test eax, eax
je 0x1003168e
inc esi
cmp esi, dword [edi + 0x38]
jl 0x10031670
jmp 0x10031692
test esi, esi
jge 0x10031694
xor esi, esi
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + esi*4]
lea eax, [ecx + 0xc]
lea edx, [ebp - 0x5c]
push edx
lea esi, [ebp - 0x68]
call fcn.10038060
add esp, 4
mov ebx, eax
mov dword [ebp - 0x74], ebx
mov esi, dword [ebp - 0x78]
add esi, 0x10
cmp ebx, esi
je 0x10031747
mov dword [esi + 4], 0
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebx + 4]
inc edi
cmp edi, dword [esi + 8]
je 0x1003172c
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1005853a
add esp, 4
mov ebx, eax
cmp dword [esi + 8], 0
jle 0x1003171b
xor eax, eax
cmp dword [esi + 4], eax
jle 0x10031710
mov edi, edi
mov ecx, dword [esi]
mov dx, word [ecx + eax*2]
mov word [ebx + eax*2], dx
inc eax
cmp eax, dword [esi + 4]
jl 0x10031700
mov eax, dword [esi]
push eax
call fcn.1005758d
add esp, 4
mov dword [esi], ebx
mov ecx, dword [esi + 4]
xor edx, edx
mov word [ebx + ecx*2], dx
mov dword [esi + 8], edi
mov ebx, dword [ebp - 0x74]
mov edx, dword [ebx]
mov ecx, dword [esi]
movzx eax, word [edx]
mov word [ecx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x10031730
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.1005758d
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10031762
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
lea esi, [ebp - 0x3c]
call fcn.1002b190
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.1005758d
mov edx, dword [ebp - 0x5c]
push edx
call fcn.1005758d
add esp, 8
xor eax, eax
jmp 0x10030bd5