Function at 0x409a80
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.00412851
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x42d8a8
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.00410f7b
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.004124f0
add esp, 0xc
push 4
call fcn.00412999
add esp, 4
test eax, eax
je 0x42d8b2
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x42d988
cmp dword [eax], 1
jg 0x42d8b9
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 0x42d920
mov esi, dword [eax + 0x134]
test esi, esi
je 0x42d988
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40aa55
test edx, edx
je 0x409b99
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x409b80
mov si, word [eax]
cmp si, word [ecx]
jne 0x40aa51
add eax, 2
add ecx, 2
dec edx
jne 0x409b80
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x409bbb
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041286c
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.00410f86
add esp, 4
mov eax, esi
test eax, eax
je 0x42d991
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], 0x498c74
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x49c41c
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x42d914
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 0x409c6c
inc eax
jmp 0x409c58
sub ecx, 0x47
je 0x42d9ed
dec ecx
jne 0x42d9c4
test esi, esi
jne 0x42d9e6
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4ba1e8]
jg 0x42d9f3
cmp eax, ecx
jle 0x42d9f3
shl eax, 4
add eax, dword [0x4ba21c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x409e82
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x409e82
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 0x42d9fc
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x409d0e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x40aa69
push 1
call fcn.00412999
add esp, 4
test eax, eax
je 0x42da34
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 0x42da3b
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x42db45
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42db58
cmp eax, 0xa
je 0x42db7d
cmp eax, 5
je 0x42db94
cmp eax, 0xb
je 0x42dba2
cmp eax, 0xc
je 0x42dbc4
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40aac6
mov edi, dword [esp + 0x34]
push 0x10
call fcn.00412999
add esp, 4
test eax, eax
je 0x42ddaa
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42dbdb
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.0040ab60
test eax, eax
jne 0x42efa7
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 0x42ddb1
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x409e82
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 0x42de00
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x42de00
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 0x409e6f
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x409cd0
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x42ef97
cmp eax, dword [esp + 0x5c]
jg 0x42ef97
cmp edx, dword [esp + 0x14]
jne 0x42ef97
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 0x42de12
cmp byte [0x4b9025], al
jne 0x42de1b
push 0xc
call fcn.00412999
add esp, 4
cmp eax, esi
je 0x42debe
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x42de3c
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x42de44
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 0x42dec5
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x40a3b9
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], 0x496654
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 0x42df18
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x42df7f
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x42df4f
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 0x42e049
mov dword [esp + 0x18], edx
cmp byte [0x4b9025], bl
jne 0x42e05c
mov ebx, dword [0x4b9020]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x40a0dc
test byte [0x4ba6d4], 1
mov byte [esp + 0x43], al
je 0x42e06a
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 0x42e08f
test edx, edx
je 0x42e097
cmp eax, edx
jb 0x42e0b7
test eax, eax
je 0x42e0a8
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x40a07a
add eax, 2
add ecx, 2
dec edx
jne 0x40a064
jmp 0x42e0a4
mov ebx, dword [esp + 0x14]
jb 0x42e0af
mov eax, 1
test eax, eax
js 0x42e0c5
jle 0x42e160
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x42e117
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 0x42e16a
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e18d
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.00410f7b
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e186
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x40a17e
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x42e194
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x42e1b3
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.004124f0
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00412999
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40a1eb
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.0x40a1b0
jmp dword [eax*4 + 0x40ab24]
push 0x10
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e1f8
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 0x40ab19
test byte [0x4ba6d4], 1
je 0x42e367
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 0x42e38a
cmp edx, edi
je 0x42e392
cmp eax, edx
jb 0x42e3b2
cmp eax, edi
jbe 0x42e3a1
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a276
add eax, 2
add ecx, 2
dec edx
jne 0x40a260
jmp 0x42e39f
jb 0x42e3a8
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42e3c0
jle 0x40a29e
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42e41f
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 0x42e46d
cmp edx, edi
je 0x42e475
cmp eax, edx
jb 0x42e495
cmp eax, edi
jbe 0x42e484
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a306
add eax, 2
add ecx, 2
dec edx
jne 0x40a2f0
jmp 0x42e482
jb 0x42e48b
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42e4a3
jle 0x42e4b4
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 0x42e4bb
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x42e4ef
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x496654
ja 0x42e513
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.00410f86
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x409f40
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 0x42e53c
push 0x40
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e58e
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.004095c0
cmp ebx, dword [edi]
jb 0x42e595
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 0x42e5a3
cmp byte [eax + 0x10], 0
je 0x42e7c8
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 0x42e5ab
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x42e647
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42e5b6
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42e5c8
cmp eax, 0xa
je 0x42e5e9
cmp eax, 5
je 0x42e5fe
cmp eax, 0xb
je 0x42e60a
cmp eax, 0xc
je 0x42e628
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42e63d
push 0x10
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e7b9
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 0x42e7c0
cmp byte [eax + 0x18], 0
jne 0x42e7e8
cmp byte [esi + 9], 0
jne 0x42e7fe
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x42e809
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 0x42e825
cmp byte [edi + 8], 0
jne 0x42e845
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x40a691
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x42e84e
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x42e860
cmp eax, 0xa
je 0x42e883
cmp eax, 5
je 0x42e899
cmp eax, 0xb
je 0x42e8a6
cmp eax, 0xc
je 0x42e8c6
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x40a648
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x42e8dc
push ebx
call fcn.00410f86
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42e8f8
cmp eax, 0xa
je 0x42e919
cmp eax, 5
je 0x42e92e
cmp eax, 0xb
je 0x42e93a
cmp eax, 0xc
je 0x42e958
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00410f86
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 0x42e96d
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42e975
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 0x42e97d
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je case.default.0x42ea19
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42e988
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42e99a
cmp eax, 0xa
je 0x42e9bb
cmp eax, 5
je 0x42e9d0
cmp eax, 0xb
je 0x42e9dc
cmp eax, 0xc
je 0x42e9fa
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x42ea0f
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 0x42ebf2
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4b9025], 0
jne 0x42ebfd
mov ecx, dword [0x4b9020]
cmp byte [0x4b9024], 0
jne 0x42ec1f
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x40a865
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x40a7ae
push eax
call fcn.0040b7a0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42ec2f
cmp byte [esi + 0x10], 0
jne 0x40a834
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40a834
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a7ee
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42ec3c
push edi
call fcn.00410f86
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42ec58
cmp eax, 0xa
je 0x42ec79
cmp eax, 5
je 0x42ec8e
cmp eax, 0xb
je 0x42ec9a
cmp eax, 0xc
je 0x42ecb8
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.00410f86
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40a858
mov edx, dword [esi]
push edx
call fcn.0041286c
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
push esi
call fcn.00410f86
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.00410f86
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 0x42eccd
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x42ece3
cmp eax, 0xa
je 0x42ed07
cmp eax, 5
je 0x42ed21
cmp eax, 0xb
je 0x42ed32
cmp eax, 0xc
je 0x42ed53
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 0x42ed6d
cmp esi, 8
je 0x42ed8a
cmp esi, 0xa
je 0x42edba
cmp esi, 5
je 0x42ede0
cmp esi, 0xb
je 0x42edf8
cmp esi, 0xc
je 0x42ee20
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x42ee46
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42ee60
cmp eax, 0xa
je 0x42ee8c
cmp eax, 5
je 0x42eeaa
cmp eax, 0xb
je 0x42eebf
cmp eax, 0xc
je 0x42eee8
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x40a994
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.00410f86
inc esi
add esp, 4
cmp esi, edi
jb 0x40a983
mov edx, dword [esp + 0x64]
push edx
call fcn.00410f86
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x40aa30
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x40aa29
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40a9e3
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x42ef06
push edi
call fcn.00410f86
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42ef22
cmp eax, 0xa
je 0x42ef43
cmp eax, 5
je 0x42ef58
cmp eax, 0xb
je 0x42ef64
cmp eax, 0xc
je 0x42ef82
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.00410f86
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x40a9b0
mov edx, dword [esp + 0x34]
push edx
call fcn.00410f86
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.0x40a1b0
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x409b60
jmp 0x42d988
add eax, eax
cmp eax, 4
jae 0x40aa75
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.00412999
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.004124f0
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.00410f86
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x409d1e
add eax, eax
cmp eax, 4
jae 0x40aad2
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.00412999
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.004124f0
add esp, 0xc
push ebx
call fcn.00410f86
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x409da3
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x40a334
mov eax, 8
jmp 0x409ac0
xor eax, eax
jmp 0x409b0c
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.004014a0
mov edx, dword [esp + 0x34]
inc edx
push edx
call fcn.0044aa0b
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.00410f7b
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.004124f0
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x409b29
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x42efa2
mov eax, dword [eax + 0x140]
dec eax
js 0x42d988
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.0040c030
test eax, eax
jns 0x42d96f
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x42d97e
jle 0x42d9a5
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x42d939
lea ecx, [esp + 0x30]
call fcn.00402340
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.004832c9
jmp 0x40aa3f
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x42d988
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00402340
jmp 0x409bbb
sub ecx, 0x37
jne 0x409c69
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 0x42efa2
dec esi
inc eax
jmp 0x409c58
inc esi
jmp 0x409c69
mov dword [esp + 0x50], ecx
jmp 0x409cb3
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x42da10
mov bl, 1
jmp 0x42da1e
cmp ecx, 0x1e
jne 0x42ddbb
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x42d9fc
jmp 0x409cfc
xor eax, eax
jmp 0x409d32
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 0x42ddc7
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0040c630
test al, al
je 0x42dde3
test dword [esp + 0x18], 0x100
je 0x42daa8
test edi, 0x100
jne 0x42daa8
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 0x42efa2
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x42db19
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 0x42db19
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0040c850
test eax, eax
je 0x42db19
lea esi, [esp + 0x20]
call fcn.00409310
lea ecx, [esp + 0x60]
call fcn.00435378
lea ecx, [esp + 0x30]
call fcn.00410d70
mov eax, edi
jmp 0x40aa3f
lea esi, [esp + 0x20]
call fcn.00409310
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0040bdb0
mov ebx, dword [esp + 0x14]
jmp 0x409e24
push eax
call fcn.0044a9ed
mov dword [esp + 0x2c], 0
jmp 0x409d52
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d83
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x20]
push edx
call fcn.00410f86
add esp, 4
jmp 0x409d83
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d83
push eax
call fcn.0044860c
jmp 0x409d83
lea eax, [esp + 0x20]
call fcn.0040eec0
jmp 0x409d83
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.00410f86
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.00410f86
add esp, 4
jmp 0x409d83
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d83
push eax
call fcn.0044f929
jmp 0x409d83
dec eax
cmp eax, 0xb
ja case.default.0x42dbe5
jmp dword [eax*4 + 0x42efcc]
push 0x10
call fcn.00412999
add esp, 4
test eax, eax
je 0x42dc22
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 0x409dd8
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x409dd8
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], ecx
jmp 0x409dd8
fld qword [esp + 0x20]
fstp qword [ebx]
jmp 0x409dd8
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
jmp 0x409dd8
push 0x214
call fcn.00412999
add esp, 4
test eax, eax
je 0x42dc7b
mov esi, dword [esp + 0x20]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42dc7d
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42dbe5
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x409dd8
cmp dword [esp + 0x20], 0
je case.default.0x42dbe5
push 0x10
call fcn.00412999
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 0x409dd8
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00410f86
add esp, 4
mov dword [ebx], 0
jmp 0x409dd8
mov dl, byte [esp + 0x20]
mov byte [ebx], dl
jmp 0x409dd8
push 0x18
call fcn.00412999
add esp, 4
test eax, eax
je 0x42dd19
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0044fea3
mov dword [ebx], eax
jmp 0x409dd8
xor eax, eax
mov dword [ebx], eax
jmp 0x409dd8
push 8
call fcn.00412999
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 0x42dd6e
push eax
call fcn.00412999
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.004124f0
add esp, 0xc
jmp 0x409dd8
push 1
call fcn.00412999
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 0x409dd8
push 0x14
call fcn.00412999
add esp, 4
test eax, eax
je 0x42dd19
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.00475a82
mov dword [ebx], eax
jmp 0x409dd8
xor eax, eax
jmp 0x409dda
add dword [esp + 0x10], 2
jmp 0x409e24
push 0xffffffffffffffff
push 0x91
jmp 0x42ef9e
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 0x42efa2
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 0x42efa2
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x42ef9e
mov dword [esp + 0x4c], esi
jmp 0x409ecb
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 0x409f1b
mov dword [edi + 4], esi
jmp 0x409efe
push 0x20
mov dword [esp + 0x1c], eax
call fcn.00412999
add esp, 4
cmp eax, esi
je 0x42de65
push eax
call fcn.0044f96c
jmp 0x42de67
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040e270
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.00457f28
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00457f28
xor esi, esi
jmp 0x409f0c
xor edi, edi
jmp 0x409f0c
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x42dedc
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b7a0
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x42def1
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b7a0
cmp byte [edi + 0x10], 0
jne 0x42df0d
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x42df0d
push 1
call fcn.0040ee10
push edi
call fcn.0044a9ed
jmp 0x409f2d
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x42df3a
cmp edi, 0x1e
jne 0x42df3e
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 0x42df18
mov dword [esp + 0x10], esi
jmp 0x409f9a
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.004366db
push eax
mov eax, dword [ecx]
push eax
call fcn.00466d7e
test al, al
je 0x42e556
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40a355
lea ebx, [esp + 0xbc]
call fcn.0040d870
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 0x42dfb6
cmp cx, 0x49
jne 0x42dfd1
lea edi, [esp + 0xbc]
call fcn.00402b00
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.00402b00
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.00402a90
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00402b00
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.0040ab60
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.00401aa0
jmp 0x40a336
push esi
mov eax, edi
push edx
mov edi, 0x4b900c
call fcn.004041c0
jmp 0x40a336
mov ecx, dword [0x4b9020]
mov ebx, dword [ecx + 8]
jmp 0x40a000
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.0044f96c
push 0x429f1d
call fcn.00412b3c
add esp, 4
xor eax, eax
jmp 0x40a01f
test edx, edx
jne 0x42e0c5
test eax, eax
jne 0x40a097
jmp 0x40a04e
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x40a089
or eax, 0xffffffff
jmp 0x40a089
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0040d550
jmp 0x40a089
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40a0a4
push eax
push edi
call fcn.00447594
add esp, 8
test al, al
je 0x42e102
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 0x40a0a4
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 0x40a032
push edi
push eax
call fcn.00447594
add esp, 8
test al, al
je 0x42e147
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 0x40a0a4
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 0x40a036
mov byte [esp + 0x43], 1
jmp 0x40a0a4
mov ebx, dword [ebx]
test ebx, ebx
je 0x40a0dc
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00409250
jmp 0x40a336
xor eax, eax
jmp 0x40a141
xor ebx, ebx
jmp 0x40a146
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 0x40a17e
push eax
call fcn.0044aa0b
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x42e1cf
push eax
call fcn.0041286c
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.00410f7b
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40a168
xor eax, eax
jmp 0x40a1e4
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x40a1b0
fld qword [edi]
fstp qword [esi]
jmp case.default.0x40a1b0
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x40a1b0
push 0x214
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e249
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42e24b
xor eax, eax
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x40a1b0
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x40a1b0
cmp dword [edi], ecx
je case.default.0x40a1b0
push 0x10
call fcn.00412999
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.0x40a1b0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.00410f86
add esp, 4
mov dword [esi], 0
jmp case.default.0x40a1b0
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x40a1b0
push 0x18
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e360
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044fea3
jmp 0x40aa4a
push 8
call fcn.00412999
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 0x42e324
push eax
call fcn.00412999
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.004124f0
add esp, 0xc
jmp case.default.0x40a1b0
push 1
call fcn.00412999
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.0x40a1b0
push 0x14
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e360
mov ecx, dword [edi]
push ecx
push eax
call fcn.00475a82
jmp 0x40aa4a
xor eax, eax
jmp 0x40aa4a
or dword [0x4ba6d4], 1
push 0x4ba6b4
call fcn.0044f96c
push 0x429f1d
call fcn.00412b3c
add esp, 4
jmp 0x40a211
cmp edx, edi
jne 0x42e3c0
cmp eax, edi
jne 0x40a28d
jmp 0x40a246
xor edi, edi
xor eax, eax
jmp 0x40a283
or eax, 0xffffffff
xor edi, edi
jmp 0x40a283
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d550
jmp 0x40a283
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x40a29e
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.00447594
add esp, 8
test al, al
je 0x42e409
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 0x40a29e
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 0x40a230
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.00447594
add esp, 8
test al, al
je 0x42e457
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 0x40a29e
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 0x40a230
cmp edx, edi
jne 0x42e4a3
cmp eax, edi
jne 0x40a321
jmp 0x40a2d9
xor edi, edi
xor eax, eax
jmp 0x40a313
or eax, 0xffffffff
xor edi, edi
jmp 0x40a313
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040d550
jmp 0x40a313
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40a330
mov ebx, esi
jmp 0x40a330
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42e4e5
cmp ax, 0x49
je 0x42e4e5
add dword [esp + 0x10], 4
jmp 0x40a355
add dword [esp + 0x10], 5
jmp 0x40a355
cmp ax, 0x3f
jg 0x40a36b
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x40a36b
push eax
call fcn.0044a9ed
jmp 0x40a36b
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x42e52d
push eax
call fcn.00450e8b
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x42e515
jmp 0x40a384
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00478b28
mov byte [edi + 9], 0
jmp 0x40a464
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.00465cea
lea ecx, [esp + 0xd0]
push ecx
call fcn.0044f9ce
lea ecx, [esp + 0xbc]
call fcn.004012e0
jmp 0x42efa7
xor eax, eax
jmp 0x40a45b
call fcn.0040cb00
cmp ebx, dword [edi]
jb 0x42e595
jmp 0x40a48f
mov eax, dword [eax + 0x38]
jmp 0x40a4b2
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x40a4d9
push eax
call fcn.0044a9ed
mov dword [ebx + 0xc], 0
jmp 0x40a4ef
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a4fb
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00410f86
add esp, 4
jmp 0x40a51f
mov eax, dword [ebx]
test eax, eax
je 0x40a51f
push eax
call fcn.0044860c
jmp 0x40a51f
mov eax, ebx
call fcn.0040eec0
jmp 0x40a51f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.00410f86
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.00410f86
add esp, 4
jmp 0x40a51f
mov eax, dword [ebx]
test eax, eax
je 0x40a51f
push eax
call fcn.0044f929
jmp 0x40a51f
dec eax
cmp eax, 0xb
ja case.default.0x42e647
jmp dword [eax*4 + 0x42effc]
mov ecx, dword [esi]
mov dword [ebx], ecx
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
jmp case.default.0x42e647
mov eax, dword [esi]
mov dword [ebx], eax
jmp case.default.0x42e647
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x42e647
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x42e647
push 0x214
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e69d
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42e69f
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x42e6b0
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [ebp + 8]
jmp case.default.0x42e647
cmp dword [esi], 0
je 0x42e6b0
push 0x10
call fcn.00412999
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.0x42e647
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.00410f86
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42e647
mov al, byte [esi]
mov byte [ebx], al
jmp case.default.0x42e647
push 0x18
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e72e
mov ecx, dword [esi]
push ecx
push eax
call fcn.0044fea3
mov dword [ebx], eax
jmp case.default.0x42e647
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x42e647
push 8
call fcn.00412999
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 0x42e77f
push eax
call fcn.00412999
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.004124f0
add esp, 0xc
jmp case.default.0x42e647
push 1
call fcn.00412999
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.0x42e647
push 0x14
call fcn.00412999
add esp, 4
test eax, eax
je 0x42e72e
mov ecx, dword [esi]
push ecx
push eax
call fcn.00475a82
mov dword [ebx], eax
jmp case.default.0x42e647
xor eax, eax
jmp 0x40a568
mov eax, dword [eax + 0x38]
jmp 0x40a583
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00409310
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x42e647
mov eax, esi
call fcn.00404070
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x40a58d
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x40a59a
mov eax, esi
call fcn.00404070
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.00409250
jmp 0x40a5a4
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x42e839
push eax
call fcn.004513d7
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x40a5bb
mov byte [edi + 9], 1
jmp 0x40a69c
push eax
call fcn.0044a9ed
mov dword [esi + 0x2c], 0
jmp 0x40a5e2
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x40a5ee
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x20]
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a612
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a612
push eax
call fcn.0044860c
jmp 0x40a612
lea eax, [esi + 0x20]
call fcn.0040eec0
jmp 0x40a612
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00410f86
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a612
mov eax, dword [esi + 0x20]
test eax, eax
je 0x40a612
push eax
call fcn.0044f929
jmp 0x40a612
mov edx, dword [ebx]
push edx
call fcn.0041286c
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a638
mov ecx, dword [esi]
test ecx, ecx
je 0x40a654
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40a678
mov eax, dword [esi]
test eax, eax
je 0x40a678
push eax
call fcn.0044860c
jmp 0x40a678
mov eax, esi
call fcn.0040eec0
jmp 0x40a678
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00410f86
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40a678
mov eax, dword [esi]
test eax, eax
je 0x40a678
push eax
call fcn.0044f929
jmp 0x40a678
mov ecx, dword [ecx + 0x38]
jmp 0x40a6b3
mov eax, dword [eax + 0x38]
jmp 0x40a6ca
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x40a6e6
push eax
call fcn.0044a9ed
mov dword [ebx + 0xc], 0
jmp 0x40a6ff
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a70b
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40a72f
mov eax, dword [ebx]
test eax, eax
je 0x40a72f
push eax
call fcn.0044860c
jmp 0x40a72f
mov eax, ebx
call fcn.0040eec0
jmp 0x40a72f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.00410f86
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40a72f
mov eax, dword [ebx]
test eax, eax
je 0x40a72f
push eax
call fcn.0044f929
jmp 0x40a72f
dec eax
cmp eax, 0xb
ja case.default.0x42ea19
jmp dword [eax*4 + 0x42f02c]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
jmp case.default.0x42ea19
fld qword [esp + 0xa0]
fstp qword [ebx]
jmp case.default.0x42ea19
push 0x10
call fcn.00412999
add esp, 4
test eax, eax
je 0x42ea7f
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.0x42ea19
xor eax, eax
mov dword [ebx + 0xc], eax
jmp case.default.0x42ea19
mov ecx, dword [esp + 0xa0]
mov dword [ebx], ecx
jmp case.default.0x42ea19
push 0x214
call fcn.00412999
add esp, 4
test eax, eax
je 0x42eac1
mov esi, dword [esp + 0xa0]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42eac3
xor eax, eax
mov edi, dword [esp + 0x68]
mov dword [ebx], eax
cmp dword [eax + 4], 0
je 0x40a755
mov eax, dword [eax + 4]
inc dword [eax]
jmp 0x40a755
mov esi, dword [esp + 0xa0]
test esi, esi
je case.default.0x42ea19
push 0x10
call fcn.00412999
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.0x42ea19
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.00410f86
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42ea19
mov dl, byte [esp + 0xa0]
mov byte [ebx], dl
jmp case.default.0x42ea19
push 0x18
call fcn.00412999
add esp, 4
test eax, eax
je 0x42eb63
mov ecx, dword [esp + 0xa0]
push ecx
push eax
call fcn.0044fea3
jmp 0x40a74f
xor eax, eax
jmp 0x40a74f
push 8
call fcn.00412999
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 0x42ebb5
push eax
call fcn.00412999
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.004124f0
add esp, 0xc
jmp case.default.0x42ea19
push 1
call fcn.00412999
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.0x42ea19
push 0x14
call fcn.00412999
add esp, 4
test eax, eax
je 0x42eb63
mov edx, dword [esp + 0xa0]
push edx
push eax
call fcn.00475a82
jmp 0x40a74f
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x40a766
mov eax, dword [0x4b9020]
mov esi, dword [eax + 8]
push eax
call fcn.004750a2
mov ecx, esi
mov dword [0x4b9020], ecx
mov byte [0x4b9025], 0
jmp 0x40a77d
mov ebx, dword [esp + 0x64]
mov byte [0x4b9025], 1
jmp 0x40a887
push eax
mov ecx, ebx
call fcn.0040b7a0
jmp 0x40a7b9
mov ecx, dword [edi]
push ecx
call fcn.0041286c
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.00410f86
add esp, 4
jmp 0x40a7de
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a7fa
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a81e
mov eax, dword [ebx]
test eax, eax
je 0x40a81e
push eax
call fcn.0044860c
jmp 0x40a81e
mov eax, ebx
call fcn.0040eec0
jmp 0x40a81e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.00410f86
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a81e
mov eax, dword [ebx]
test eax, eax
je 0x40a81e
push eax
call fcn.0044f929
jmp 0x40a81e
push eax
call fcn.0044a9ed
mov dword [esp + 0xac], 0
jmp 0x40a8ac
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x40a8e0
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.00410f86
add esp, 4
jmp 0x40a8e0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a8e0
push eax
call fcn.0044860c
jmp 0x40a8e0
lea eax, [esp + 0xa0]
call fcn.0040eec0
jmp 0x40a8e0
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.00410f86
add esp, 4
push esi
call fcn.00410f86
add esp, 4
jmp 0x40a8e0
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40a8e0
push eax
call fcn.0044f929
jmp 0x40a8e0
push eax
call fcn.0044a9ed
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a90b
cmp dword [esp + 0x80], ecx
je 0x40a938
mov esi, dword [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push esi
call fcn.00410f86
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a938
cmp dword [esp + 0x80], ecx
je 0x40a938
mov eax, dword [esp + 0x80]
push eax
call fcn.0044860c
mov edx, 1
xor ecx, ecx
jmp 0x40a938
lea eax, [esp + 0x80]
call fcn.0040eec0
mov edx, 1
xor ecx, ecx
jmp 0x40a938
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.00410f86
add esp, 4
push esi
call fcn.00410f86
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a938
cmp dword [esp + 0x80], ecx
je 0x40a938
mov edx, dword [esp + 0x80]
push edx
call fcn.0044f929
mov edx, 1
xor ecx, ecx
jmp 0x40a938
push eax
call fcn.0044a9ed
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x40a944
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a975
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x20]
push eax
call fcn.00410f86
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a975
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a975
push eax
call fcn.0044860c
mov edx, 1
xor ecx, ecx
jmp 0x40a975
lea eax, [esp + 0x20]
call fcn.0040eec0
mov edx, 1
xor ecx, ecx
jmp 0x40a975
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.00410f86
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x40a975
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x40a975
push eax
call fcn.0044f929
mov edx, 1
xor ecx, ecx
jmp 0x40a975
mov edx, dword [edi]
push edx
call fcn.0041286c
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.00410f86
add esp, 4
jmp 0x40a9d3
mov ecx, dword [esi]
test ecx, ecx
je 0x40a9ef
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40aa13
mov eax, dword [esi]
test eax, eax
je 0x40aa13
push eax
call fcn.0044860c
jmp 0x40aa13
mov eax, esi
call fcn.0040eec0
jmp 0x40aa13
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.00410f86
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.00410f86
add esp, 4
jmp 0x40aa13
mov eax, dword [esi]
test eax, eax
je 0x40aa13
push eax
call fcn.0044f929
jmp 0x40aa13
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call fcn.00465cea
lea esi, [esp + 0x20]
call fcn.00409310
lea ecx, [esp + 0x60]
call fcn.00435378
lea ecx, [esp + 0x30]
call fcn.00410d70
mov eax, 1
jmp 0x40aa3f