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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
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.00411085
add esp, 4
mov dword [esp + 0x34], eax
add eax, 1
je 0x42cc7b
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.004114ca
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.00410d20
add esp, 0xc
push 4
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42cc85
mov dword [eax], 1
mov esi, dword [ebp + 8]
cmp dword [esi + 0x138], 0
mov dword [esp + 0x3c], eax
je 0x42cd67
cmp dword [eax], 1
jg 0x42cc8c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov eax, dword [esi + 0x134]
test eax, eax
jne 0x42ccf6
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x12c]
test esi, esi
je 0x42cd67
mov dword [esp + 0x1c], esi
mov edi, edi
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x40a865
test edx, edx
jbe 0x409b1b
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x409b00
mov si, word [eax]
cmp si, word [ecx]
jne 0x40a861
add eax, 2
add ecx, 2
sub edx, 1
jne 0x409b00
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
add dword [eax], 0xffffffff
jne 0x409b3e
mov eax, dword [esp + 0x30]
push eax
call fcn.0041109f
mov ecx, dword [esp + 0x40]
add esp, 4
push ecx
call fcn.0041109f
add esp, 4
mov eax, esi
test eax, eax
je 0x42cd70
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x7c], 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 + 0x140]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xa4], 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 + 0x68], 0x486648
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x30], 0x48aee0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
jne 0x42ccea
inc eax
mov dword [esp + 0x84], 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 0x409bef
inc eax
jmp 0x409bdb
sub ecx, 0x47
je 0x42cdcc
sub ecx, 1
jne 0x42cda7
test esi, esi
jne 0x42cdc5
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x7c]
cmp eax, dword [0x4a7e90]
jg 0x42cdd2
cmp eax, ecx
jle 0x42cdd2
shl eax, 4
add eax, dword [0x4a7ec4]
mov dword [esp + 0x58], eax
cmp dword [esp + 0x48], ecx
mov dword [esp + 0x5c], ecx
jle 0x409e0a
mov dword [esp + 0x10], 3
mov dword [esp + 0x80], ecx
cmp edx, dword [esp + 0x14]
jae 0x409e0a
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x5c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x42cddb
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x409c90
xor bl, bl
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
cmp esi, eax
je 0x40a879
push 1
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42ce13
mov byte [eax], bl
mov edx, dword [esp + 0x34]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x38], esi
test bl, bl
jne 0x42ce1a
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x42cf20
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42cf33
cmp eax, 0xa
je 0x42cf58
cmp eax, 5
je 0x42cf6f
cmp eax, 0xb
je 0x42cf7d
cmp eax, 0xc
je 0x42cf9f
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x40a8d6
mov edi, dword [esp + 0x6c]
push 0x10
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d185
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x42cfb6
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 + 0x74], 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.0040a970
test eax, eax
jne 0x42df1f
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
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 0x42d18c
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x409e0a
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 0x42d1d7
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x42d1d7
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x409df1
inc dword [esp + 0x10]
mov eax, dword [esp + 0x80]
inc eax
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
jl 0x409c52
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x4c]
jl 0x42df0c
cmp eax, dword [esp + 0x48]
jg 0x42df0c
cmp edx, dword [esp + 0x14]
jne 0x42df0c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x48]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], eax
jl 0x42d1ed
cmp byte [0x4a6ce5], 0
jne 0x42d1f6
push 0xc
call fcn.004114ca
add esp, 4
cmp eax, ebx
je 0x42d299
mov edi, eax
mov dword [edi], ebx
mov edx, dword [esp + 0x64]
mov dword [edi + 4], edx
cmp dword [esp + 0x64], ebx
jl 0x42d217
mov eax, dword [esp + 0x60]
cmp eax, ebx
jne 0x42d21f
mov dword [edi], ebx
mov eax, dword [0x4a6ce0]
mov dword [edi + 8], eax
mov dword [0x4a6ce0], edi
mov eax, dword [esp + 0x60]
inc dword [0x4a6cdc]
cmp eax, ebx
jne 0x42d2a0
cmp esi, 1
mov dword [esp + 0x80], 1
jl 0x40a369
jmp 0x409ed0
mov esi, dword [esp + 0x10]
or ecx, 0xffffffff
mov word [esp + 0xa0], cx
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + 4]
xor ebx, ebx
xor edx, edx
mov word [esp + 0xa2], dx
mov dword [esp + 0x88], 0x484234
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x84], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x42d2f3
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0x5c]
jg 0x42d35a
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], 0
jne 0x42d32a
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a6cdc], ebx
je 0x42d42e
cmp byte [0x4a6ce5], 0
mov dword [esp + 0x18], edx
jne 0x42d441
mov ebx, dword [0x4a6ce0]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x40a080
test byte [0x4a837c], 1
mov byte [esp + 0x47], al
je 0x42d44f
mov dword [0x4a8378], eax
mov dword [0x4a8374], eax
mov eax, 0x4a835c
mov dword [esp + 0x78], eax
mov dword [esp + 0x50], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x42d474
test edx, edx
je 0x42d47c
cmp eax, edx
jb 0x42d49c
test eax, eax
jbe 0x42d48d
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov edi, edi
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x40a018
add eax, 2
add ecx, 2
sub edx, 1
jne 0x40a000
jmp 0x42d489
mov dx, bx
mov ebx, dword [esp + 0x14]
cmp dx, word [ecx]
jb 0x42d494
mov eax, 1
test eax, eax
jl 0x42d4aa
jle 0x42d545
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x42d4fc
cmp byte [esp + 0x47], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a8378]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a8374]
mov dword [edx + 0x1c], eax
jne 0x42d54f
and esi, 0xff00
push 0x20
mov dword [esp + 0x50], esi
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d572
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.004114ca
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d56b
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x40a122
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x42d579
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x42d598
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.00410d20
add esp, 0xc
mov eax, dword [esp + 0x4c]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.004114ca
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40a18d
mov edi, dword [esp + 0x18]
mov esi, eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
dec eax
mov dword [esp + 0x50], esi
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja case.default.0x40a152
jmp dword [eax*4 + 0x40a934]
push 0x10
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d5dd
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 + 0x50]
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 0x40a929
test byte [0x4a837c], 1
je 0x42d74c
mov eax, 0x4a835c
mov dword [0x4a8378], edi
mov dword [0x4a8374], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x50], eax
lea esp, [esp]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x42d76f
cmp edx, edi
je 0x42d777
cmp eax, edx
jb 0x42d797
cmp eax, edi
jbe 0x42d786
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a218
add eax, 2
add ecx, 2
sub edx, 1
jne 0x40a200
jmp 0x42d784
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x42d78d
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42d7a5
jle 0x40a246
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42d804
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x50]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a8378]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a8374]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x42d852
cmp edx, edi
je 0x42d85a
cmp eax, edx
jb 0x42d87a
cmp eax, edi
jbe 0x42d869
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x40a2af
add eax, 2
add ecx, 2
sub edx, 1
jne 0x40a297
jmp 0x42d867
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x42d870
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x42d888
jle 0x42d899
mov ecx, dword [0x4a8374]
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 + 0x58]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x42d8a0
add dword [esp + 0x10], 2
mov ax, word [esp + 0xa0]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x42d8d4
cmp dword [esp + 0x90], 0
mov dword [esp + 0x88], 0x484234
ja 0x42d8f8
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x94], 0
call fcn.0041109f
mov eax, dword [esp + 0x84]
inc eax
add esp, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
jle 0x409ed0
xor ebx, ebx
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x5c]
mov eax, dword [esi]
mov dword [esi + 0x140], edx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc4], ebx
jne 0x42d959
push 0x30
call fcn.004114ca
add esp, 4
cmp eax, ebx
je 0x42d9a4
mov dword [eax + 8], 1
mov dword [eax + 0xc], ebx
mov dword [eax], ebx
mov byte [eax + 0x10], 0
mov dword [eax + 0x14], ebx
mov byte [eax + 0x18], 0
mov dword [eax + 0x1c], ebx
mov byte [eax + 0x20], 0
mov ecx, dword [edi + 4]
mov dword [eax + 0x28], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov eax, dword [esp + 0x7c]
mov edx, dword [esi + 0xec]
mov ebx, dword [esi + 0x164]
inc eax
lea edi, [esi + 0x164]
push eax
mov ecx, esi
mov dword [esp + 0x64], edx
call fcn.00409520
cmp ebx, dword [edi]
jb 0x42d9ab
mov ecx, dword [esp + 0x60]
mov eax, esi
mov edx, dword [eax]
mov dword [eax + 0xec], ecx
mov ecx, dword [edx + 4]
cmp byte [ecx + eax + 0xd], 0
lea ecx, [ecx + eax + 4]
jne 0x42d9b9
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0x10], 0
je 0x42dbe2
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [eax]
mov ecx, dword [edx + 4]
cmp byte [ecx + eax + 0xd], 0
lea eax, [ecx + eax + 4]
jne 0x42d9c4
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x42da60
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x42d9cf
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42d9e1
cmp eax, 0xa
je 0x42da02
cmp eax, 5
je 0x42da17
cmp eax, 0xb
je 0x42da23
cmp eax, 0xc
je 0x42da41
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x42da56
push 0x10
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42dbd3
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 edi, dword [ebp + 8]
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 0x42dbda
cmp byte [eax + 0x18], 0
jne 0x42dc02
cmp byte [esi + 9], 0
jne 0x42dc18
mov eax, dword [esi + 4]
cmp byte [eax + 0x20], 0
jne 0x42dc23
cmp byte [esi + 9], 0
jne 0x42dc39
cmp byte [esi + 8], 0
jne 0x42dc59
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x60], ecx
test ebx, ebx
je 0x40a5a9
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a560
mov eax, dword [edi + 0xc]
dec dword [eax]
mov edx, dword [edi + 0xc]
cmp dword [edx], 0
je 0x42dc62
push edi
call fcn.0041109f
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42dc7e
cmp eax, 0xa
je 0x42dc9f
cmp eax, 5
je 0x42dcb4
cmp eax, 0xb
je 0x42dcc0
cmp eax, 0xc
je 0x42dcde
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041109f
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [esp + 0x60]
mov dword [esi + 4], eax
mov byte [esi + 9], 0
dec dword [esi]
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x42dcf3
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42dcfe
mov byte [eax + 0x18], 0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x42dd06
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0xc4]
mov dword [ecx + 0x1c], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x42dd11
mov byte [eax + 0x20], 0
cmp byte [0x4a6ce5], 0
jne 0x42dd19
mov ecx, dword [0x4a6ce0]
cmp byte [0x4a6ce4], 0
jne 0x42dd3b
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
mov ebx, ecx
test esi, esi
je 0x40a712
mov eax, dword [esi + 0x18]
mov dword [esp + 0x60], ebx
test eax, eax
je 0x40a658
push eax
call fcn.0040b620
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42dd47
cmp byte [esi + 0x10], 0
jne 0x40a6e1
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40a6e1
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a698
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42dd54
push edi
call fcn.0041109f
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42dd70
cmp eax, 0xa
je 0x42dd91
cmp eax, 5
je 0x42dda6
cmp eax, 0xb
je 0x42ddb2
cmp eax, 0xc
je 0x42ddd0
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041109f
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40a705
mov edx, dword [esi]
push edx
call fcn.0041109f
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0041109f
add esp, 4
push esi
call fcn.0041109f
mov ebx, dword [esp + 0x64]
add esp, 4
push ebx
call fcn.0041109f
mov ecx, dword [esp + 0x50]
add esp, 4
mov dword [0x4a6ce0], ecx
mov byte [0x4a6ce5], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xa4]
mov esi, 1
sub dword [0x4a6cdc], esi
mov dword [edi + 0x140], edx
test eax, eax
jne 0x42dde5
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42ddf8
cmp eax, 0xa
je 0x42de1d
cmp eax, 5
je 0x42de34
cmp eax, 0xb
je 0x42de42
cmp eax, 0xc
je 0x42de64
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x28], esi
xor esi, esi
mov dword [esp + 0x20], esi
test edi, edi
jbe 0x40a7a8
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.0041109f
inc esi
add esp, 4
cmp esi, edi
jb 0x40a797
push ebx
call fcn.0041109f
add esp, 4
cmp dword [esp + 0x70], 0
jbe 0x40a840
xor ebx, ebx
mov edi, edi
mov edx, dword [esp + 0x6c]
mov esi, dword [edx + ebx*4]
test esi, esi
je 0x40a839
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40a7f3
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42de7b
push edi
call fcn.0041109f
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42de97
cmp eax, 0xa
je 0x42deb8
cmp eax, 5
je 0x42decd
cmp eax, 0xb
je 0x42ded9
cmp eax, 0xc
je 0x42def7
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0041109f
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x70]
jb 0x40a7c0
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0041109f
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.0x40a152
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x409ae0
jmp 0x42cd67
add eax, eax
cmp eax, 4
jae 0x40a885
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.004114ca
mov edx, dword [esp + 0x38]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x6c], eax
call fcn.00410d20
mov eax, dword [esp + 0x40]
add esp, 0xc
push eax
call fcn.0041109f
mov ecx, dword [esp + 0x64]
add esp, 4
mov dword [esp + 0x34], ecx
jmp 0x409ca0
add eax, eax
cmp eax, 4
jae 0x40a8e2
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x74], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004114ca
mov ebx, dword [esp + 0x70]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00410d20
add esp, 0xc
push ebx
call fcn.0041109f
add esp, 4
mov dword [esp + 0x6c], edi
jmp 0x409d25
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x40a2e3
mov eax, 8
jmp 0x409a42
xor eax, eax
jmp 0x409a8e
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.00401380
mov eax, dword [esp + 0x34]
inc eax
push eax
call fcn.00446620
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.004114ca
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.00410d20
mov dword [esp + 0x3c], esi
mov esi, dword [ebp + 8]
add esp, 0xc
jmp 0x409aab
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x42df1a
mov esi, dword [esi + 0x138]
sub esi, 1
js 0x42cd67
mov dword [esp + 0x7c], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], esi
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x7c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ecx + eax*4]
lea esi, [esp + 0x30]
mov dword [esp + 0x1c], eax
call fcn.0040bed0
test eax, eax
jge 0x42cd4e
mov edx, dword [esp + 0x1c]
dec edx
mov dword [esp + 0x5c], edx
jmp 0x42cd5d
jle 0x42cd84
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x48], ecx
jle 0x42cd15
lea ecx, [esp + 0x30]
call fcn.00402610
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call fcn.0047c2f3
jmp 0x40a84f
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x48], edx
jg 0x42cd67
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00402610
jmp 0x409b3e
sub ecx, 0x37
jne 0x409bec
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
push edx
push 0x6f
jmp 0x42df16
dec esi
inc eax
jmp 0x409bdb
inc esi
jmp 0x409bec
mov dword [esp + 0x58], ecx
jmp 0x409c35
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x42cdef
mov bl, 1
jmp 0x42cdfd
cmp ecx, 0x1e
jne 0x42d196
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x42cddb
jmp 0x409c7e
xor eax, eax
jmp 0x409cb4
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 0x42d1a6
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0040c220
test al, al
je 0x42d1be
test dword [esp + 0x18], 0x100
je 0x42ce83
test edi, 0x100
jne 0x42ce83
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]
push edx
push 0xb0
jmp 0x42df16
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x42cef4
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 0x42cef4
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0040c460
test eax, eax
je 0x42cef4
lea esi, [esp + 0x20]
call fcn.00409280
lea ecx, [esp + 0x30]
call fcn.00441ec4
lea ecx, [esp + 0x68]
call fcn.00410890
mov eax, edi
jmp 0x40a84f
lea esi, [esp + 0x20]
call fcn.00409280
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x6c]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0040bc20
mov ebx, dword [esp + 0x14]
jmp 0x409da6
push eax
call fcn.00442b75
mov dword [esp + 0x2c], 0
jmp 0x409cd4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d05
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x20]
push edx
call fcn.0041109f
add esp, 4
jmp 0x409d05
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d05
push eax
call fcn.004432d7
jmp 0x409d05
lea eax, [esp + 0x20]
call fcn.0040e170
jmp 0x409d05
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041109f
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.0041109f
add esp, 4
jmp 0x409d05
mov eax, dword [esp + 0x20]
test eax, eax
je 0x409d05
push eax
call fcn.0044b46c
jmp 0x409d05
dec eax
cmp eax, 0xb
ja case.default.0x42cfc0
jmp dword [eax*4 + 0x42df47]
push 0x10
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42cffd
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 0x409d5a
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x409d5a
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], ecx
jmp 0x409d5a
fld qword [esp + 0x20]
fstp qword [ebx]
jmp 0x409d5a
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
jmp 0x409d5a
push 0x214
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d056
mov esi, dword [esp + 0x20]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42d058
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42cfc0
mov eax, dword [eax + 4]
inc dword [eax]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
jmp 0x409d5a
cmp dword [esp + 0x20], 0
je case.default.0x42cfc0
push 0x10
call fcn.004114ca
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
jge 0x409d5a
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041109f
add esp, 4
mov dword [ebx], 0
jmp 0x409d5a
mov dl, byte [esp + 0x20]
mov byte [ebx], dl
jmp 0x409d5a
push 0x18
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d0f4
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0044b959
mov dword [ebx], eax
jmp 0x409d5a
xor eax, eax
mov dword [ebx], eax
jmp 0x409d5a
push 8
call fcn.004114ca
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 0x42d149
push eax
call fcn.004114ca
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.00410d20
add esp, 0xc
jmp 0x409d5a
push 1
call fcn.004114ca
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 0x409d5a
push 0x14
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d0f4
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.0046ddf5
mov dword [ebx], eax
jmp 0x409d5a
xor eax, eax
jmp 0x409d5c
add dword [esp + 0x10], 2
jmp 0x409da6
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push 0x91
push ecx
jmp 0x42df1a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
push edx
push 0x91
jmp 0x42df16
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]
push edx
push 0x79
jmp 0x42df16
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
mov ecx, dword [ebp + 8]
push eax
push 0x6f
push ecx
jmp 0x42df1a
mov dword [esp + 0x64], ebx
jmp 0x409e52
mov edx, dword [0x4a6ce0]
mov dword [edx], ebx
mov eax, dword [esp + 0x64]
mov ecx, dword [0x4a6ce0]
mov dword [ecx + 4], eax
mov byte [0x4a6ce5], 0
jmp 0x409ea2
mov dword [edi + 4], ebx
jmp 0x409e86
push 0x20
mov dword [esp + 0x1c], eax
call fcn.004114ca
add esp, 4
cmp eax, ebx
je 0x42d240
push eax
call fcn.0044b4aa
jmp 0x42d242
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040dd10
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 eax, dword [edi]
mov dword [eax + 0x18], ebx
mov ecx, dword [edi]
mov dword [ecx + 0x1c], ebx
mov edx, dword [esi + 0x18]
mov eax, dword [edi]
push edx
add eax, 0x18
push eax
mov ecx, edi
call fcn.0045331a
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi]
push ecx
add edx, 0x1c
push edx
mov ecx, edi
call fcn.0045331a
mov esi, dword [esp + 0x48]
jmp 0x409e94
xor edi, edi
jmp 0x409e94
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, ebx
je 0x42d2b7
push eax
lea ecx, [esp + 0x64]
call fcn.0040b620
mov eax, dword [edi + 0x1c]
cmp eax, ebx
je 0x42d2cc
push eax
lea ecx, [esp + 0x64]
call fcn.0040b620
cmp byte [edi + 0x10], 0
jne 0x42d2e8
mov ecx, dword [edi + 0x14]
cmp ecx, ebx
je 0x42d2e8
push 1
call fcn.0040e0d0
push edi
call fcn.00442b75
jmp 0x409eb4
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x42d315
cmp edi, 0x1e
jne 0x42d319
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 0x42d2f3
mov dword [esp + 0x10], esi
jmp 0x409f2f
mov edi, dword [esp + 0x6c]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.00434e2e
push eax
mov eax, dword [ecx]
push eax
call fcn.0045fa2a
test al, al
je 0x42d921
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40a304
lea ebx, [esp + 0x88]
call fcn.0040d480
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 4]
mov dword [esp + 0x84], 0
mov esi, dword [edx + esi*4 + 8]
movzx eax, word [esi + 8]
cmp ax, 0x4a
je 0x42d39a
cmp ax, 0x49
je 0x42d39a
push esi
jmp 0x42d3b7
push esi
lea edi, [esp + 0x8c]
call fcn.00402cb0
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
push eax
lea edi, [esp + 0x8c]
call fcn.00402cb0
mov edi, 0x7f
lea esi, [esp + 0x98]
call fcn.00402af0
push esi
lea edi, [esp + 0x8c]
call fcn.00402cb0
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x8c]
push eax
push edi
call fcn.0040a970
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
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 + 0x60], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.004019d0
jmp 0x40a2e5
push esi
mov eax, edi
push edx
mov edi, 0x4a6ccc
call fcn.00404220
jmp 0x40a2e5
mov ecx, dword [0x4a6ce0]
mov ebx, dword [ecx + 8]
jmp 0x409f9a
or dword [0x4a837c], 1
push 0x4a835c
call fcn.0044b4aa
push 0x429033
call fcn.004111d1
add esp, 4
xor eax, eax
jmp 0x409fb9
test edx, edx
jne 0x42d4aa
test eax, eax
jne 0x40a03b
jmp 0x409fe8
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x40a02d
or eax, 0xffffffff
jmp 0x40a02d
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0040bf00
jmp 0x40a02d
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40a048
push eax
push edi
call fcn.004432f3
add esp, 8
test al, al
je 0x42d4e7
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 0x40a048
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x409fcc
push edi
push eax
call fcn.004432f3
add esp, 8
test al, al
je 0x42d52c
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 0x40a048
mov eax, dword [ebx]
mov ecx, dword [esp + 0x78]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x78], eax
mov dword [ebx], edx
jmp 0x409fd0
mov byte [esp + 0x47], 1
jmp 0x40a048
mov ebx, dword [ebx]
test ebx, ebx
je 0x40a080
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.004091d0
jmp 0x40a2e5
xor eax, eax
jmp 0x40a0e5
xor ebx, ebx
jmp 0x40a0ea
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 0x40a122
push eax
call fcn.00446620
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x42d5b4
push eax
call fcn.0041109f
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.004114ca
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40a10c
xor eax, eax
jmp 0x40a186
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x40a152
fld qword [edi]
fstp qword [esi]
jmp case.default.0x40a152
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x40a152
push 0x214
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d62e
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42d630
xor eax, eax
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x40a152
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x40a152
cmp dword [edi], ecx
je case.default.0x40a152
push 0x10
call fcn.004114ca
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
jge case.default.0x40a152
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.0041109f
add esp, 4
mov dword [esi], 0
jmp case.default.0x40a152
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x40a152
push 0x18
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d745
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044b959
jmp 0x40a85a
push 8
call fcn.004114ca
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 0x42d709
push eax
call fcn.004114ca
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.00410d20
add esp, 0xc
jmp case.default.0x40a152
push 1
call fcn.004114ca
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.0x40a152
push 0x14
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42d745
mov ecx, dword [edi]
push ecx
push eax
call fcn.0046ddf5
jmp 0x40a85a
xor eax, eax
jmp 0x40a85a
or dword [0x4a837c], 1
push 0x4a835c
call fcn.0044b4aa
push 0x429033
call fcn.004111d1
add esp, 4
jmp 0x40a1b3
cmp edx, edi
jne 0x42d7a5
cmp eax, edi
jne 0x40a235
jmp 0x40a1e6
xor edi, edi
xor eax, eax
jmp 0x40a22b
or eax, 0xffffffff
xor edi, edi
jmp 0x40a22b
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040bf00
jmp 0x40a22b
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x40a246
push eax
push ebx
mov dword [esp + 0x54], eax
call fcn.004432f3
add esp, 8
test al, al
je 0x42d7ee
mov eax, dword [esp + 0x4c]
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 0x40a246
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x78], esi
mov esi, dword [ecx]
jmp 0x40a1d0
push ebx
push eax
mov dword [esp + 0x54], eax
call fcn.004432f3
add esp, 8
test al, al
je 0x42d83c
mov eax, dword [esp + 0x4c]
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 0x40a246
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x50], esi
mov esi, dword [ecx]
jmp 0x40a1d0
cmp edx, edi
jne 0x42d888
cmp eax, edi
jne 0x40a2d0
jmp 0x40a281
xor edi, edi
xor eax, eax
jmp 0x40a2c2
or eax, 0xffffffff
xor edi, edi
jmp 0x40a2c2
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0040bf00
jmp 0x40a2c2
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x40a2df
mov ebx, esi
jmp 0x40a2df
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x42d8ca
cmp ax, 0x49
je 0x42d8ca
add dword [esp + 0x10], 4
jmp 0x40a304
add dword [esp + 0x10], 5
jmp 0x40a304
cmp ax, 0x3f
jg 0x40a31a
mov eax, dword [esp + 0x98]
test eax, eax
je 0x40a31a
push eax
call fcn.00442b75
jmp 0x40a31a
xor esi, esi
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x42d912
push eax
call fcn.0044cc09
inc esi
cmp esi, dword [esp + 0x90]
jb 0x42d8fa
jmp 0x40a333
mov edx, dword [esp + 0x58]
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.0045f1c0
lea ecx, [esp + 0x98]
push ecx
call fcn.0044b506
lea ecx, [esp + 0x88]
call fcn.0040eab0
jmp 0x42df1f
mov eax, dword [edi + 4]
lea edx, [esp + 0xa8]
push edx
push eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb8], 1
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xc0], 0
mov byte [esp + 0xc8], 0
mov byte [esp + 0xd0], 0
call fcn.004715de
mov byte [edi + 9], 0
jmp 0x40a3d1
xor eax, eax
jmp 0x40a3c8
call fcn.0040c6e0
cmp ebx, dword [edi]
jb 0x42d9ab
jmp 0x40a3fe
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x28]
jmp 0x40a421
mov edx, dword [eax + 4]
mov esi, dword [edx + 0x28]
jmp 0x40a448
push eax
call fcn.00442b75
mov dword [ebx + 0xc], 0
jmp 0x40a45e
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a46a
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a48e
mov eax, dword [ebx]
test eax, eax
je 0x40a48e
push eax
call fcn.004432d7
jmp 0x40a48e
mov eax, ebx
call fcn.0040e170
jmp 0x40a48e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041109f
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a48e
mov eax, dword [ebx]
test eax, eax
je 0x40a48e
push eax
call fcn.0044b46c
jmp 0x40a48e
dec eax
cmp eax, 0xb
ja case.default.0x42da60
jmp dword [eax*4 + 0x42df77]
mov edx, dword [esi]
mov dword [ebx], edx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
jmp case.default.0x42da60
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x42da60
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x42da60
mov edx, dword [esi]
mov dword [ebx], edx
jmp case.default.0x42da60
push 0x214
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42dab6
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x42dab8
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x42da60
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x42da60
cmp dword [esi], 0
je case.default.0x42da60
push 0x10
call fcn.004114ca
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esi]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge case.default.0x42da60
mov edx, dword [ebx]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041109f
add esp, 4
mov dword [ebx], 0
jmp case.default.0x42da60
mov cl, byte [esi]
mov byte [ebx], cl
jmp case.default.0x42da60
push 0x18
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42db48
mov edx, dword [esi]
push edx
push eax
call fcn.0044b959
mov dword [ebx], eax
jmp case.default.0x42da60
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x42da60
push 8
call fcn.004114ca
mov dword [ebx], eax
mov ecx, dword [esi]
mov edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [ebx]
mov eax, dword [eax]
add esp, 4
test eax, eax
je 0x42db99
push eax
call fcn.004114ca
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.00410d20
add esp, 0xc
jmp case.default.0x42da60
push 1
call fcn.004114ca
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.0x42da60
push 0x14
call fcn.004114ca
add esp, 4
test eax, eax
je 0x42db48
mov ecx, dword [esi]
push ecx
push eax
call fcn.0046ddf5
mov dword [ebx], eax
jmp case.default.0x42da60
xor eax, eax
jmp 0x40a4d7
mov eax, dword [eax + 0x28]
jmp 0x40a4f5
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00409280
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x42da60
mov eax, esi
call fcn.00404100
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xbc], ecx
jmp 0x40a4ff
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x28]
jmp 0x40a50c
mov eax, esi
call fcn.00404100
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc4], eax
jmp 0x40a516
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x28]
test eax, eax
je 0x42dc4d
push eax
call fcn.0044b9c7
mov dword [esi + 4], ebx
mov byte [esi + 9], 0
jmp 0x40a520
mov byte [esi + 9], 1
jmp 0x40a5b4
mov eax, dword [edi]
push eax
call fcn.0041109f
mov ecx, dword [edi + 0xc]
add esp, 4
push ecx
call fcn.0041109f
add esp, 4
jmp 0x40a550
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a56c
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.0041109f
add esp, 4
jmp 0x40a590
mov eax, dword [ebx]
test eax, eax
je 0x40a590
push eax
call fcn.004432d7
jmp 0x40a590
mov eax, ebx
call fcn.0040e170
jmp 0x40a590
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041109f
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0041109f
add esp, 4
jmp 0x40a590
mov eax, dword [ebx]
test eax, eax
je 0x40a590
push eax
call fcn.0044b46c
jmp 0x40a590
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x40a5ca
mov eax, dword [eax + 0x28]
jmp 0x40a5e1
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x40a5f9
mov eax, dword [eax + 0x28]
jmp 0x40a610
mov eax, dword [0x4a6ce0]
mov esi, dword [eax + 8]
push eax
call fcn.0046db31
mov ecx, esi
mov dword [0x4a6ce0], ecx
mov byte [0x4a6ce5], 0
jmp 0x40a627
mov byte [0x4a6ce5], 1
jmp 0x40a72c
push eax
mov ecx, ebx
call fcn.0040b620
jmp 0x40a663
mov ecx, dword [edi]
push ecx
call fcn.0041109f
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0041109f
add esp, 4
jmp 0x40a688
mov ecx, dword [ebx]
test ecx, ecx
je 0x40a6a4
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a6c8
mov eax, dword [ebx]
test eax, eax
je 0x40a6c8
push eax
call fcn.004432d7
jmp 0x40a6c8
mov eax, ebx
call fcn.0040e170
jmp 0x40a6c8
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041109f
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a6c8
mov eax, dword [ebx]
test eax, eax
je 0x40a6c8
push eax
call fcn.0044b46c
jmp 0x40a6c8
push eax
call fcn.00442b75
mov dword [esp + 0x2c], 0
jmp 0x40a750
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a781
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x20]
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a781
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a781
push eax
call fcn.004432d7
jmp 0x40a781
lea eax, [esp + 0x20]
call fcn.0040e170
jmp 0x40a781
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0041109f
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a781
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40a781
push eax
call fcn.0044b46c
jmp 0x40a781
mov ecx, dword [edi]
push ecx
call fcn.0041109f
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0041109f
add esp, 4
jmp 0x40a7e3
mov ecx, dword [esi]
test ecx, ecx
je 0x40a7ff
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi]
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a823
mov eax, dword [esi]
test eax, eax
je 0x40a823
push eax
call fcn.004432d7
jmp 0x40a823
mov eax, esi
call fcn.0040e170
jmp 0x40a823
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push edx
call fcn.0041109f
mov eax, dword [esi]
add esp, 4
push eax
call fcn.0041109f
add esp, 4
jmp 0x40a823
mov eax, dword [esi]
test eax, eax
je 0x40a823
push eax
call fcn.0044b46c
jmp 0x40a823
mov edx, dword [esp + 0x84]
push edx
push 0x70
mov eax, dword [ebp + 8]
push eax
call fcn.0045f1c0
lea esi, [esp + 0x20]
call fcn.00409280
lea ecx, [esp + 0x30]
call fcn.00441ec4
lea ecx, [esp + 0x68]
call fcn.00410890
mov eax, 1
jmp 0x40a84f