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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.00412941
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x42d929
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041106b
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.004125e0
add esp, 0xc
push 4
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42d933
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x42da09
cmp dword [eax], 1
jg 0x42d93a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x42d9a1
mov esi, dword [eax + 0x134]
test esi, esi
je 0x42da09
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40aab5
test edx, edx
je 0x409bf9
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x409be0
mov si, word [eax]
cmp si, word [ecx]
jne 0x40aab1
add eax, 2
add ecx, 2
dec edx
jne 0x409be0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x409c1b
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041295c
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.00411076
add esp, 4
mov eax, esi
test eax, eax
je 0x42da12
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x498ccc
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x49d298
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x42d995
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x409ccc
inc eax
jmp 0x409cb8
sub ecx, 0x47
je 0x42da6e
dec ecx
jne 0x42da45
test esi, esi
jne 0x42da67
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4ba1e8]
jg 0x42da74
cmp eax, ecx
jle 0x42da74
shl eax, 4
add eax, dword [0x4ba21c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x409ee2
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x409ee2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x42da7d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x409d6e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x40aac9
push 1
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42dab5
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x42dabc
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x42dbc6
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42dbd9
cmp eax, 0xa
je 0x42dbfe
cmp eax, 5
je 0x42dc15
cmp eax, 0xb
je 0x42dc23
cmp eax, 0xc
je 0x42dc45
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40ab26
mov edi, dword [esp + 0x34]
push 0x10
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42de2b
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42dc5c
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040abc0
test eax, eax
jne 0x42f028
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x42de32
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x409ee2
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x42de81
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x42de81
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x409ecf
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x409d30
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x42f018
cmp eax, dword [esp + 0x5c]
jg 0x42f018
cmp edx, dword [esp + 0x14]
jne 0x42f018
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x42de93
cmp byte [0x4b9025], al
jne 0x42de9c
push 0xc
call fcn.00412a89
add esp, 4
cmp eax, esi
je 0x42df3f
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x42debd
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x42dec5
mov dword [edi], esi
mov ecx, dword [0x4b9020]
mov dword [edi + 8], ecx
mov dword [0x4b9020], edi
mov eax, dword [esp + 0x48]
inc dword [0x4b901c]
cmp eax, esi
jne 0x42df46
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x40a419
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xbc], 0x4966cc
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xda], ax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x42df99
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x42e000
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x42dfd0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4b901c], ebx
je 0x42e0ca
mov dword [esp + 0x18], edx
cmp byte [0x4b9025], bl
jne 0x42e0dd
mov ebx, dword [0x4b9020]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x40a13c
test byte [0x4ba6d4], 1
mov byte [esp + 0x43], al
je 0x42e0eb
mov dword [0x4ba6d0], eax
mov dword [0x4ba6cc], eax
mov eax, 0x4ba6b4
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x42e110
test edx, edx
je 0x42e118
cmp eax, edx
jb 0x42e138
test eax, eax
je 0x42e129
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x40a0da
add eax, 2
add ecx, 2
dec edx
jne 0x40a0c4
jmp 0x42e125
mov ebx, dword [esp + 0x14]
jb 0x42e130
mov eax, 1
test eax, eax
js 0x42e146
jle 0x42e1e1
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x42e198
cmp byte [esp + 0x43], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4ba6d0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4ba6cc]
mov dword [edx + 0x1c], eax
jne 0x42e1eb
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e20e
mov esi, eax
xor ecx, ecx
mov eax, 8
mov dword [esi + 8], eax
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], 0
neg ecx
or ecx, eax
push ecx
call fcn.0041106b
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e207
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x40a1de
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x42e215
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x42e234
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
lea eax, [edx + edx + 2]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.004125e0
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00412a89
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40a24b
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x58], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja case.default.0x40a210
jmp dword [eax*4 + 0x40ab84]
push 0x10
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e279
mov ecx, dword [edi + 0xc]
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 ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x40ab79
test byte [0x4ba6d4], 1
je 0x42e3e8
mov eax, 0x4ba6b4
mov dword [0x4ba6d0], edi
mov dword [0x4ba6cc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
lea ebx, [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x42e40b
cmp edx, edi
je 0x42e413
cmp eax, edx
jb 0x42e433
cmp eax, edi
jbe 0x42e422
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a2d6
add eax, 2
add ecx, 2
dec edx
jne 0x40a2c0
jmp 0x42e420
jb 0x42e429
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42e441
jle 0x40a2fe
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42e4a0
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4ba6d0]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4ba6cc]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42e4ee
cmp edx, edi
je 0x42e4f6
cmp eax, edx
jb 0x42e516
cmp eax, edi
jbe 0x42e505
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a366
add eax, 2
add ecx, 2
dec edx
jne 0x40a350
jmp 0x42e503
jb 0x42e50c
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42e524
jle 0x42e535
mov ecx, dword [0x4ba6cc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x42e53c
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x42e570
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x4966cc
ja 0x42e594
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.00411076
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x409fa0
mov ebx, dword [esp + 0xcc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
xor eax, eax
lea ecx, [eax + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x90], al
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0xb0], al
mov eax, dword [esi]
mov dword [esi + 0x148], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
jne 0x42e5bd
push 0x40
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e60f
xor ecx, ecx
mov edx, 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov byte [eax + 0x10], cl
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], cl
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], ecx
mov byte [eax + 0x30], cl
mov ecx, dword [edi + 4]
mov dword [eax + 0x38], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov edx, dword [esi + 0xf4]
lea eax, [ebx + 1]
mov ebx, dword [esi + 0x16c]
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.00409620
cmp ebx, dword [edi]
jb 0x42e616
mov eax, dword [esp + 0x48]
mov edi, esi
mov ecx, dword [edi]
mov dword [edi + 0xf4], eax
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
lea eax, [edx + edi + 4]
mov eax, dword [eax + 4]
jne 0x42e624
cmp byte [eax + 0x10], 0
je 0x42e849
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x42e62c
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x42e6c8
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42e637
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42e649
cmp eax, 0xa
je 0x42e66a
cmp eax, 5
je 0x42e67f
cmp eax, 0xb
je 0x42e68b
cmp eax, 0xc
je 0x42e6a9
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42e6be
push 0x10
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e83a
mov ecx, dword [esi + 0xc]
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 ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x42e841
cmp byte [eax + 0x18], 0
jne 0x42e869
cmp byte [esi + 9], 0
jne 0x42e87f
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x42e88a
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
cmp byte [ecx + ebx + 0xd], 0
lea edi, [ecx + ebx + 4]
jne 0x42e8a6
cmp byte [edi + 8], 0
jne 0x42e8c6
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x40a6f1
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x42e8cf
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x42e8e1
cmp eax, 0xa
je 0x42e904
cmp eax, 5
je 0x42e91a
cmp eax, 0xb
je 0x42e927
cmp eax, 0xc
je 0x42e947
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x40a6a8
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x42e95d
push ebx
call fcn.00411076
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42e979
cmp eax, 0xa
je 0x42e99a
cmp eax, 5
je 0x42e9af
cmp eax, 0xb
je 0x42e9bb
cmp eax, 0xc
je 0x42e9d9
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00411076
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov byte [edi + 9], 0
dec dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 8]
add eax, ebx
cmp byte [eax + 0xd], 0
jne 0x42e9ee
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42e9f6
mov byte [eax + 0x18], 0
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
cmp byte [eax + 0xd], 0
mov dword [esp + 0x48], eax
jne 0x42e9fe
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je case.default.0x42ea9a
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42ea09
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42ea1b
cmp eax, 0xa
je 0x42ea3c
cmp eax, 5
je 0x42ea51
cmp eax, 0xb
je 0x42ea5d
cmp eax, 0xc
je 0x42ea7b
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x42ea90
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xd], 0
jne 0x42ec73
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4b9025], 0
jne 0x42ec7e
mov ecx, dword [0x4b9020]
cmp byte [0x4b9024], 0
jne 0x42eca0
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x40a8c5
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x40a80e
push eax
call fcn.0040b800
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42ecb0
cmp byte [esi + 0x10], 0
jne 0x40a894
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40a894
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a84e
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42ecbd
push edi
call fcn.00411076
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42ecd9
cmp eax, 0xa
je 0x42ecfa
cmp eax, 5
je 0x42ed0f
cmp eax, 0xb
je 0x42ed1b
cmp eax, 0xc
je 0x42ed39
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.00411076
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40a8b8
mov edx, dword [esi]
push edx
call fcn.0041295c
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.00411076
add esp, 4
push esi
call fcn.00411076
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.00411076
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4b9020], edx
mov byte [0x4b9025], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4b901c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x42ed4e
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x42ed64
cmp eax, 0xa
je 0x42ed88
cmp eax, 5
je 0x42eda2
cmp eax, 0xb
je 0x42edb3
cmp eax, 0xc
je 0x42edd4
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
cmp eax, ecx
jne 0x42edee
cmp esi, 8
je 0x42ee0b
cmp esi, 0xa
je 0x42ee3b
cmp esi, 5
je 0x42ee61
cmp esi, 0xb
je 0x42ee79
cmp esi, 0xc
je 0x42eea1
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x42eec7
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42eee1
cmp eax, 0xa
je 0x42ef0d
cmp eax, 5
je 0x42ef2b
cmp eax, 0xb
je 0x42ef40
cmp eax, 0xc
je 0x42ef69
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x40a9f4
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.00411076
inc esi
add esp, 4
cmp esi, edi
jb 0x40a9e3
mov edx, dword [esp + 0x64]
push edx
call fcn.00411076
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x40aa90
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x40aa89
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40aa43
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x42ef87
push edi
call fcn.00411076
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42efa3
cmp eax, 0xa
je 0x42efc4
cmp eax, 5
je 0x42efd9
cmp eax, 0xb
je 0x42efe5
cmp eax, 0xc
je 0x42f003
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00411076
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x40aa10
mov edx, dword [esp + 0x34]
push edx
call fcn.00411076
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi]
mov dword [esi], eax
jmp case.default.0x40a210
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x409bc0
jmp 0x42da09
add eax, eax
cmp eax, 4
jae 0x40aad5
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412a89
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.004125e0
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.00411076
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x409d7e
add eax, eax
cmp eax, 4
jae 0x40ab32
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412a89
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.004125e0
add esp, 0xc
push ebx
call fcn.00411076
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x409e03
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x40a394
mov eax, 8
jmp 0x409b20
xor eax, eax
jmp 0x409b6c
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.00401500
mov edx, dword [esp + 0x34]
inc edx
push edx
call fcn.0044aa54
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x38], esi
neg ecx
or ecx, eax
push ecx
call fcn.0041106b
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.004125e0
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x409b89
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x42f023
mov eax, dword [eax + 0x140]
dec eax
js 0x42da09
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
call fcn.0040c090
test eax, eax
jns 0x42d9f0
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x42d9ff
jle 0x42da26
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x42d9ba
lea ecx, [esp + 0x30]
call fcn.004023b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.0048331f
jmp 0x40aa9f
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x42da09
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.004023b0
jmp 0x409c1b
sub ecx, 0x37
jne 0x409cc9
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x42f023
dec esi
inc eax
jmp 0x409cb8
inc esi
jmp 0x409cc9
mov dword [esp + 0x50], ecx
jmp 0x409d13
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x42da91
mov bl, 1
jmp 0x42da9f
cmp ecx, 0x1e
jne 0x42de3c
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x42da7d
jmp 0x409d5c
xor eax, eax
jmp 0x409d92
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x42de48
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0040c690
test al, al
je 0x42de64
test dword [esp + 0x18], 0x100
je 0x42db29
test edi, 0x100
jne 0x42db29
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x42f023
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x42db9a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x42db9a
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0040c8b0
test eax, eax
je 0x42db9a
lea esi, [esp + 0x20]
call fcn.00409370
lea ecx, [esp + 0x60]
call fcn.00446089
lea ecx, [esp + 0x30]
call fcn.00410e60
mov eax, edi
jmp 0x40aa9f
lea esi, [esp + 0x20]
call fcn.00409370
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0040be10
mov ebx, dword [esp + 0x14]
jmp 0x409e84
push eax
call fcn.00446d9d
mov dword [esp + 0x2c], 0
jmp 0x409db2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409de3
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x20]
push edx
call fcn.00411076
add esp, 4
jmp 0x409de3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409de3
push eax
call fcn.00448580
jmp 0x409de3
lea eax, [esp + 0x20]
call fcn.0040e750
jmp 0x409de3
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.00411076
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.00411076
add esp, 4
jmp 0x409de3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409de3
push eax
call fcn.0044f7d6
jmp 0x409de3
dec eax
cmp eax, 0xb
ja case.default.0x42dc66
jmp dword [eax*4 + 0x42f04d]
push 0x10
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42dca3
mov ecx, dword [esp + 0x2c]
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 ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
jmp 0x409e38
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x409e38
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], ecx
jmp 0x409e38
fld qword [esp + 0x20]
fstp qword [ebx]
jmp 0x409e38
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
jmp 0x409e38
push 0x214
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42dcfc
mov esi, dword [esp + 0x20]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42dcfe
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42dc66
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x409e38
cmp dword [esp + 0x20], 0
je case.default.0x42dc66
push 0x10
call fcn.00412a89
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns 0x409e38
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00411076
add esp, 4
mov dword [ebx], 0
jmp 0x409e38
mov dl, byte [esp + 0x20]
mov byte [ebx], dl
jmp 0x409e38
push 0x18
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42dd9a
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0044fd50
mov dword [ebx], eax
jmp 0x409e38
xor eax, eax
mov dword [ebx], eax
jmp 0x409e38
push 8
call fcn.00412a89
mov dword [ebx], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42ddef
push eax
call fcn.00412a89
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.004125e0
add esp, 0xc
jmp 0x409e38
push 1
call fcn.00412a89
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp 0x409e38
push 0x14
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42dd9a
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.00475ad8
mov dword [ebx], eax
jmp 0x409e38
xor eax, eax
jmp 0x409e3a
add dword [esp + 0x10], 2
jmp 0x409e84
push 0xffffffffffffffff
push 0x91
jmp 0x42f01f
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x42f023
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x42f023
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x42f01f
mov dword [esp + 0x4c], esi
jmp 0x409f2b
mov edx, dword [0x4b9020]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x4b9020]
mov dword [ecx + 4], eax
mov byte [0x4b9025], 0
jmp 0x409f7b
mov dword [edi + 4], esi
jmp 0x409f5e
push 0x20
mov dword [esp + 0x1c], eax
call fcn.00412a89
add esp, 4
cmp eax, esi
je 0x42dee6
push eax
call fcn.0044f819
jmp 0x42dee8
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040e580
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x14], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ecx + 0x18], eax
mov edx, dword [edi]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi]
add ecx, 0x18
push eax
push ecx
mov ecx, edi
call fcn.00457fc1
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00457fc1
xor esi, esi
jmp 0x409f6c
xor edi, edi
jmp 0x409f6c
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x42df5d
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b800
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x42df72
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b800
cmp byte [edi + 0x10], 0
jne 0x42df8e
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x42df8e
push 1
call fcn.0040e6a0
push edi
call fcn.00446d9d
jmp 0x409f8d
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x42dfbb
cmp edi, 0x1e
jne 0x42dfbf
mov dword [esp + 0x14], 0x100
mov eax, dword [esp + 0x14]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x42df99
mov dword [esp + 0x10], esi
jmp 0x409ffa
mov edi, dword [esp + 0x34]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.004363d2
push eax
mov eax, dword [ecx]
push eax
call fcn.00466e8a
test al, al
je 0x42e5d7
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40a3b5
lea ebx, [esp + 0xbc]
call fcn.0040d910
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x42e037
cmp cx, 0x49
jne 0x42e052
lea edi, [esp + 0xbc]
call fcn.00402b80
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
lea edi, [esp + 0xbc]
call fcn.00402b80
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.00402b10
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00402b80
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.0040abc0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x14]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x48], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.00401ae0
jmp 0x40a396
push esi
mov eax, edi
push edx
mov edi, 0x4b900c
call fcn.00404240
jmp 0x40a396
mov ecx, dword [0x4b9020]
mov ebx, dword [ecx + 8]
jmp 0x40a060
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.0044f819
push 0x429ffd
call fcn.00412c2c
add esp, 4
xor eax, eax
jmp 0x40a07f
test edx, edx
jne 0x42e146
test eax, eax
jne 0x40a0f7
jmp 0x40a0ae
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x40a0e9
or eax, 0xffffffff
jmp 0x40a0e9
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0040d570
jmp 0x40a0e9
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40a104
push eax
push edi
call fcn.00447527
add esp, 8
test al, al
je 0x42e183
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx]
mov dword [eax + 0x1c], ecx
mov dword [ebx], eax
cmp dword [eax + 0x18], 0
je 0x40a104
mov edx, dword [ebx]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x40a092
push edi
push eax
call fcn.00447527
add esp, 8
test al, al
je 0x42e1c8
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax + 0x18], edx
mov dword [ebx], eax
cmp dword [eax + 0x1c], 0
je 0x40a104
mov eax, dword [ebx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [ebx], edx
jmp 0x40a096
mov byte [esp + 0x43], 1
jmp 0x40a104
mov ebx, dword [ebx]
test ebx, ebx
je 0x40a13c
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.004092b0
jmp 0x40a396
xor eax, eax
jmp 0x40a1a1
xor ebx, ebx
jmp 0x40a1a6
dec dword [eax]
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
inc dword [edi]
jmp 0x40a1de
push eax
call fcn.0044aa54
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x42e250
push eax
call fcn.0041295c
add esp, 4
mov eax, dword [ebx + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041106b
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40a1c8
xor eax, eax
jmp 0x40a244
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x40a210
fld qword [edi]
fstp qword [esi]
jmp case.default.0x40a210
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x40a210
push 0x214
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e2ca
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42e2cc
xor eax, eax
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x40a210
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x40a210
cmp dword [edi], ecx
je case.default.0x40a210
push 0x10
call fcn.00412a89
add esp, 4
push eax
mov dword [esi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [edi]
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x40a210
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.00411076
add esp, 4
mov dword [esi], 0
jmp case.default.0x40a210
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x40a210
push 0x18
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e3e1
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044fd50
jmp 0x40aaaa
push 8
call fcn.00412a89
mov dword [esi], eax
mov edx, dword [edi]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [esi]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42e3a5
push eax
call fcn.00412a89
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov esi, dword [esi]
mov edx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [esi + 4]
push ecx
push edx
call fcn.004125e0
add esp, 0xc
jmp case.default.0x40a210
push 1
call fcn.00412a89
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x40a210
push 0x14
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e3e1
mov ecx, dword [edi]
push ecx
push eax
call fcn.00475ad8
jmp 0x40aaaa
xor eax, eax
jmp 0x40aaaa
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.0044f819
push 0x429ffd
call fcn.00412c2c
add esp, 4
jmp 0x40a271
cmp edx, edi
jne 0x42e441
cmp eax, edi
jne 0x40a2ed
jmp 0x40a2a6
xor edi, edi
xor eax, eax
jmp 0x40a2e3
or eax, 0xffffffff
xor edi, edi
jmp 0x40a2e3
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d570
jmp 0x40a2e3
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x40a2fe
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.00447527
add esp, 8
test al, al
je 0x42e48a
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x40a2fe
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x74], esi
mov esi, dword [ecx]
jmp 0x40a290
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.00447527
add esp, 8
test al, al
je 0x42e4d8
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x40a2fe
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx]
jmp 0x40a290
cmp edx, edi
jne 0x42e524
cmp eax, edi
jne 0x40a381
jmp 0x40a339
xor edi, edi
xor eax, eax
jmp 0x40a373
or eax, 0xffffffff
xor edi, edi
jmp 0x40a373
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d570
jmp 0x40a373
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40a390
mov ebx, esi
jmp 0x40a390
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42e566
cmp ax, 0x49
je 0x42e566
add dword [esp + 0x10], 4
jmp 0x40a3b5
add dword [esp + 0x10], 5
jmp 0x40a3b5
cmp ax, 0x3f
jg 0x40a3cb
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x40a3cb
push eax
call fcn.00446d9d
jmp 0x40a3cb
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x42e5ae
push eax
call fcn.00450d4e
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x42e596
jmp 0x40a3e4
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00478b7e
mov byte [edi + 9], 0
jmp 0x40a4c4
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
call fcn.00465df6
lea ecx, [esp + 0xd0]
push ecx
call fcn.0044f87b
lea ecx, [esp + 0xbc]
call fcn.0040ee70
jmp 0x42f028
xor eax, eax
jmp 0x40a4bb
call fcn.0040cb60
cmp ebx, dword [edi]
jb 0x42e616
jmp 0x40a4ef
mov eax, dword [eax + 0x38]
jmp 0x40a512
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x40a539
push eax
call fcn.00446d9d
mov dword [ebx + 0xc], 0
jmp 0x40a54f
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a55b
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00411076
add esp, 4
jmp 0x40a57f
mov eax, dword [ebx]
test eax, eax
je 0x40a57f
push eax
call fcn.00448580
jmp 0x40a57f
mov eax, ebx
call fcn.0040e750
jmp 0x40a57f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.00411076
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.00411076
add esp, 4
jmp 0x40a57f
mov eax, dword [ebx]
test eax, eax
je 0x40a57f
push eax
call fcn.0044f7d6
jmp 0x40a57f
dec eax
cmp eax, 0xb
ja case.default.0x42e6c8
jmp dword [eax*4 + 0x42f07d]
mov ecx, dword [esi]
mov dword [ebx], ecx
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
jmp case.default.0x42e6c8
mov eax, dword [esi]
mov dword [ebx], eax
jmp case.default.0x42e6c8
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x42e6c8
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x42e6c8
push 0x214
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e71e
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42e720
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x42e731
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [ebp + 8]
jmp case.default.0x42e6c8
cmp dword [esi], 0
je 0x42e731
push 0x10
call fcn.00412a89
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [esi]
mov eax, dword [ebx]
push edx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x42e6c8
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00411076
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42e6c8
mov al, byte [esi]
mov byte [ebx], al
jmp case.default.0x42e6c8
push 0x18
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e7af
mov ecx, dword [esi]
push ecx
push eax
call fcn.0044fd50
mov dword [ebx], eax
jmp case.default.0x42e6c8
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x42e6c8
push 8
call fcn.00412a89
mov dword [ebx], eax
mov edx, dword [esi]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x42e800
push eax
call fcn.00412a89
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov ebx, dword [ebx]
mov edx, dword [ebx]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ebx + 4]
push ecx
push edx
call fcn.004125e0
add esp, 0xc
jmp case.default.0x42e6c8
push 1
call fcn.00412a89
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add esp, 4
mov byte [eax], 0
jmp case.default.0x42e6c8
push 0x14
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42e7af
mov ecx, dword [esi]
push ecx
push eax
call fcn.00475ad8
mov dword [ebx], eax
jmp case.default.0x42e6c8
xor eax, eax
jmp 0x40a5c8
mov eax, dword [eax + 0x38]
jmp 0x40a5e3
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00409370
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x42e6c8
mov eax, esi
call fcn.004040f0
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x40a5ed
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x40a5fa
mov eax, esi
call fcn.004040f0
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.004092b0
jmp 0x40a604
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x42e8ba
push eax
call fcn.0045142d
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x40a61b
mov byte [edi + 9], 1
jmp 0x40a6fc
push eax
call fcn.00446d9d
mov dword [esi + 0x2c], 0
jmp 0x40a642
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x40a64e
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x20]
push eax
call fcn.00411076
add esp, 4
jmp 0x40a672
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a672
push eax
call fcn.00448580
jmp 0x40a672
lea eax, [esi + 0x20]
call fcn.0040e750
jmp 0x40a672
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00411076
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.00411076
add esp, 4
jmp 0x40a672
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a672
push eax
call fcn.0044f7d6
jmp 0x40a672
mov edx, dword [ebx]
push edx
call fcn.0041295c
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.00411076
add esp, 4
jmp 0x40a698
mov ecx, dword [esi]
test ecx, ecx
je 0x40a6b4
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.00411076
add esp, 4
jmp 0x40a6d8
mov eax, dword [esi]
test eax, eax
je 0x40a6d8
push eax
call fcn.00448580
jmp 0x40a6d8
mov eax, esi
call fcn.0040e750
jmp 0x40a6d8
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00411076
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00411076
add esp, 4
jmp 0x40a6d8
mov eax, dword [esi]
test eax, eax
je 0x40a6d8
push eax
call fcn.0044f7d6
jmp 0x40a6d8
mov ecx, dword [ecx + 0x38]
jmp 0x40a713
mov eax, dword [eax + 0x38]
jmp 0x40a72a
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x40a746
push eax
call fcn.00446d9d
mov dword [ebx + 0xc], 0
jmp 0x40a75f
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a76b
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00411076
add esp, 4
jmp 0x40a78f
mov eax, dword [ebx]
test eax, eax
je 0x40a78f
push eax
call fcn.00448580
jmp 0x40a78f
mov eax, ebx
call fcn.0040e750
jmp 0x40a78f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.00411076
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.00411076
add esp, 4
jmp 0x40a78f
mov eax, dword [ebx]
test eax, eax
je 0x40a78f
push eax
call fcn.0044f7d6
jmp 0x40a78f
dec eax
cmp eax, 0xb
ja case.default.0x42ea9a
jmp dword [eax*4 + 0x42f0ad]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
jmp case.default.0x42ea9a
fld qword [esp + 0xa0]
fstp qword [ebx]
jmp case.default.0x42ea9a
push 0x10
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42eb00
mov ecx, dword [esp + 0xac]
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 ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
jmp case.default.0x42ea9a
xor eax, eax
mov dword [ebx + 0xc], eax
jmp case.default.0x42ea9a
mov ecx, dword [esp + 0xa0]
mov dword [ebx], ecx
jmp case.default.0x42ea9a
push 0x214
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42eb42
mov esi, dword [esp + 0xa0]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42eb44
xor eax, eax
mov edi, dword [esp + 0x68]
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x40a7b5
mov eax, dword [eax + 4]
inc dword [eax]
jmp 0x40a7b5
mov esi, dword [esp + 0xa0]
test esi, esi
je case.default.0x42ea9a
push 0x10
call fcn.00412a89
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [ebx]
push esi
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jns case.default.0x42ea9a
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00411076
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42ea9a
mov dl, byte [esp + 0xa0]
mov byte [ebx], dl
jmp case.default.0x42ea9a
push 0x18
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42ebe4
mov ecx, dword [esp + 0xa0]
push ecx
push eax
call fcn.0044fd50
jmp 0x40a7af
xor eax, eax
jmp 0x40a7af
push 8
call fcn.00412a89
mov esi, dword [esp + 0xa4]
mov dword [ebx], eax
mov edx, dword [esi]
mov dword [eax], edx
mov eax, dword [ebx]
mov eax, dword [eax]
add esp, 4
test eax, eax
je 0x42ec36
push eax
call fcn.00412a89
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov ebx, dword [ebx]
mov edx, dword [ebx]
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
add esp, 4
push edx
push eax
push ecx
call fcn.004125e0
add esp, 0xc
jmp case.default.0x42ea9a
push 1
call fcn.00412a89
mov edx, dword [ebx]
mov dword [edx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
add esp, 4
mov byte [ecx], 0
jmp case.default.0x42ea9a
push 0x14
call fcn.00412a89
add esp, 4
test eax, eax
je 0x42ebe4
mov edx, dword [esp + 0xa0]
push edx
push eax
call fcn.00475ad8
jmp 0x40a7af
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x40a7c6
mov eax, dword [0x4b9020]
mov esi, dword [eax + 8]
push eax
call fcn.004750f8
mov ecx, esi
mov dword [0x4b9020], ecx
mov byte [0x4b9025], 0
jmp 0x40a7dd
mov ebx, dword [esp + 0x64]
mov byte [0x4b9025], 1
jmp 0x40a8e7
push eax
mov ecx, ebx
call fcn.0040b800
jmp 0x40a819
mov ecx, dword [edi]
push ecx
call fcn.0041295c
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.00411076
add esp, 4
jmp 0x40a83e
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a85a
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.00411076
add esp, 4
jmp 0x40a87e
mov eax, dword [ebx]
test eax, eax
je 0x40a87e
push eax
call fcn.00448580
jmp 0x40a87e
mov eax, ebx
call fcn.0040e750
jmp 0x40a87e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.00411076
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.00411076
add esp, 4
jmp 0x40a87e
mov eax, dword [ebx]
test eax, eax
je 0x40a87e
push eax
call fcn.0044f7d6
jmp 0x40a87e
push eax
call fcn.00446d9d
mov dword [esp + 0xac], 0
jmp 0x40a90c
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x40a940
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.00411076
add esp, 4
jmp 0x40a940
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a940
push eax
call fcn.00448580
jmp 0x40a940
lea eax, [esp + 0xa0]
call fcn.0040e750
jmp 0x40a940
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.00411076
add esp, 4
push esi
call fcn.00411076
add esp, 4
jmp 0x40a940
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a940
push eax
call fcn.0044f7d6
jmp 0x40a940
push eax
call fcn.00446d9d
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a96b
cmp dword [esp + 0x80], ecx
je 0x40a998
mov esi, dword [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.00411076
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a998
cmp dword [esp + 0x80], ecx
je 0x40a998
mov eax, dword [esp + 0x80]
push eax
call fcn.00448580
mov edx, 1
xor ecx, ecx
jmp 0x40a998
lea eax, [esp + 0x80]
call fcn.0040e750
mov edx, 1
xor ecx, ecx
jmp 0x40a998
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.00411076
add esp, 4
push esi
call fcn.00411076
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a998
cmp dword [esp + 0x80], ecx
je 0x40a998
mov edx, dword [esp + 0x80]
push edx
call fcn.0044f7d6
mov edx, 1
xor ecx, ecx
jmp 0x40a998
push eax
call fcn.00446d9d
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a9a4
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a9d5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x20]
push eax
call fcn.00411076
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a9d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a9d5
push eax
call fcn.00448580
mov edx, 1
xor ecx, ecx
jmp 0x40a9d5
lea eax, [esp + 0x20]
call fcn.0040e750
mov edx, 1
xor ecx, ecx
jmp 0x40a9d5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00411076
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.00411076
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a9d5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a9d5
push eax
call fcn.0044f7d6
mov edx, 1
xor ecx, ecx
jmp 0x40a9d5
mov edx, dword [edi]
push edx
call fcn.0041295c
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.00411076
add esp, 4
jmp 0x40aa33
mov ecx, dword [esi]
test ecx, ecx
je 0x40aa4f
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.00411076
add esp, 4
jmp 0x40aa73
mov eax, dword [esi]
test eax, eax
je 0x40aa73
push eax
call fcn.00448580
jmp 0x40aa73
mov eax, esi
call fcn.0040e750
jmp 0x40aa73
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00411076
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00411076
add esp, 4
jmp 0x40aa73
mov eax, dword [esi]
test eax, eax
je 0x40aa73
push eax
call fcn.0044f7d6
jmp 0x40aa73
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call fcn.00465df6
lea esi, [esp + 0x20]
call fcn.00409370
lea ecx, [esp + 0x60]
call fcn.00446089
lea ecx, [esp + 0x30]
call fcn.00410e60
mov eax, 1
jmp 0x40aa9f