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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c4
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov eax, dword [eax]
push eax
mov dword [esp + 0x34], eax
call fcn.004127e5
add esp, 4
mov dword [esp + 0x54], eax
add eax, 1
je 0x430a22
lea esi, [eax + 7]
shr esi, 3
add esi, esi
add esi, esi
add esi, esi
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x58], esi
neg ecx
or ecx, eax
push ecx
call fcn.00412c2a
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x58]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
mov dword [esp + 0x5c], esi
call fcn.00412480
add esp, 0xc
push 4
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430a2c
mov dword [eax], 1
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x138], 0
mov dword [esp + 0x5c], eax
je 0x430b0b
cmp dword [eax], 1
jg 0x430a33
mov eax, dword [esp + 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x134]
test eax, eax
jne 0x430a9a
mov esi, dword [edx + 0x12c]
test esi, esi
je 0x430b0b
mov dword [esp + 0x1c], esi
lea ecx, [ecx]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x54]
jne 0x406157
test edx, edx
jbe 0x4051fb
mov ecx, dword [esp + 0x50]
mov eax, dword [esi]
jmp 0x4051e0
mov si, word [eax]
cmp si, word [ecx]
jne 0x406153
add eax, 2
add ecx, 2
sub edx, 1
jne 0x4051e0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add dword [eax], 0xffffffff
jne 0x40521e
mov eax, dword [esp + 0x50]
push eax
call fcn.0041293d
mov ecx, dword [esp + 0x60]
add esp, 4
push ecx
call fcn.0041293d
add esp, 4
test esi, esi
je 0x430b14
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi]
mov dword [esp + 0x9c], ecx
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [esp + 0x18]
xor esi, esi
inc eax
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x140]
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], esi
mov dword [esp + 0xfc], edx
mov edx, dword [ecx + eax*4]
cmp word [edx + 8], 0x47
mov dword [esp + 0x78], 0x48839c
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x50], 0x48bc7c
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
jne 0x430a8e
inc eax
mov edx, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x74], 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 0x4052d6
inc eax
jmp 0x4052c2
sub ecx, 0x47
je 0x430b79
sub ecx, 1
jne 0x430b4c
cmp dword [esp + 0x24], ecx
jne 0x430b6f
mov dword [esp + 0x28], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x68]
cmp eax, dword [0x4a68b8]
jg 0x430b82
cmp eax, ecx
jle 0x430b82
shl eax, 4
add eax, dword [0x4a68ec]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
jle 0x4054fb
mov dword [esp + 0x14], 3
mov dword [esp + 0x24], ecx
jmp 0x405340
cmp edx, dword [esp + 0x28]
jae 0x4054fb
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x48]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor bl, bl
cmp word [ecx + 8], 0
mov dword [esp + 0x2c], 0
je 0x430b8b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x405385
xor bl, bl
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp edi, eax
je 0x40616b
push 1
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430bc6
mov byte [eax], bl
mov edx, dword [esp + 0x54]
mov dword [edx + edi*4], eax
inc edi
mov dword [esp + 0x58], edi
test bl, bl
jne 0x430bcd
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x430ce5
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x430cf8
cmp eax, 0xa
je 0x430d1d
cmp eax, 5
je 0x430d34
cmp eax, 0xb
je 0x430d42
cmp eax, 0xc
je 0x430d64
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], 0
cmp esi, eax
je 0x4061c8
mov edi, dword [esp + 0x7c]
push 0x10
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430f61
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x430d7b
mov edx, dword [esp + 0x38]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
mov dword [edi + esi*4], eax
mov eax, dword [edi + esi*4]
inc esi
push ebx
push eax
lea eax, [esp + 0x7c]
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x90], esi
call fcn.004062e0
test eax, eax
jne 0x4327e5
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x14], eax
je 0x430f68
mov edx, dword [esp + 0x74]
cmp edx, ebx
je 0x4054fb
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x430fb9
lea eax, [edx + 1]
cmp eax, dword [esp + 0x28]
je 0x430fb9
mov edi, dword [esp + 0x14]
mov edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x74], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
cmp word [eax + 8], cx
jne 0x4054e8
inc dword [esp + 0x14]
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jl 0x405340
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x9c]
jl 0x4327d4
cmp eax, dword [esp + 0x4c]
jg 0x4327d4
cmp edx, dword [esp + 0x28]
jne 0x4327d4
mov ebx, dword [esp + 0x68]
xor esi, esi
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x14], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ebx
jl 0x430fcb
cmp byte [0x4a5705], 0
jne 0x430fd7
push 0xc
call fcn.00412c2a
add esp, 4
cmp eax, esi
je 0x43107d
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0xa4]
mov dword [edi + 4], edx
cmp dword [esp + 0xa4], esi
jl 0x430ffb
mov eax, dword [esp + 0xa0]
cmp eax, esi
jne 0x431003
mov dword [edi], esi
mov ecx, dword [0x4a5700]
mov dword [edi + 8], ecx
mov dword [0x4a5700], edi
mov eax, dword [esp + 0xa0]
inc dword [0x4a56fc]
cmp eax, esi
jne 0x431084
mov eax, 1
cmp dword [esp + 0x4c], eax
jl 0x405a65
mov dword [esp + 0x24], eax
lea esp, [esp]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x14]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xa8], dx
mov dword [esp + 0x88], 0x486234
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x9c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xaa], ax
mov dword [esp + 0x2c], eax
cmp word [edi + 8], bx
je 0x4310dd
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x48]
jg 0x431144
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], 0
jne 0x431114
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x14]
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a56fc], ebx
je 0x431219
cmp byte [0x4a5705], 0
mov dword [esp + 0x20], edx
jne 0x43122c
mov ebx, dword [0x4a5700]
xor eax, eax
mov dword [esp + 0x28], ebx
cmp dword [ebx], eax
je 0x405780
test byte [0x4a6d9c], 1
mov byte [esp + 0x13], al
je 0x43123a
mov dword [0x4a6d98], eax
mov dword [0x4a6d94], eax
mov eax, 0x4a6d7c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
jmp 0x4056d0
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x43125f
test edx, edx
je 0x431267
cmp eax, edx
jb 0x431287
test eax, eax
jbe 0x431278
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov edi, edi
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x405718
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405700
jmp 0x431274
mov dx, bx
mov ebx, dword [esp + 0x28]
cmp dx, word [ecx]
jb 0x43127f
mov eax, 1
test eax, eax
jl 0x431295
jle 0x431330
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x4312e7
cmp byte [esp + 0x13], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x34]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a6d98]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a6d94]
mov dword [edx + 0x1c], eax
jne 0x43133a
and esi, 0xff00
push 0x20
mov dword [esp + 0x68], esi
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x43135d
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.00412c2a
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x431356
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x405822
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x431364
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x431383
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.00412480
add esp, 0xc
mov eax, dword [esp + 0x64]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.00412c2a
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x40588d
mov edi, dword [esp + 0x20]
mov esi, eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
dec eax
mov dword [esp + 0x34], esi
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja case.default.0x405852
jmp dword [eax*4 + 0x4062a8]
push 0x10
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x4313c8
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 + 0x34]
mov eax, dword [esp + 0x28]
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 0x406221
test byte [0x4a6d9c], 1
je 0x431537
mov eax, 0x4a6d7c
mov dword [0x4a6d98], edi
mov dword [0x4a6d94], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
lea esp, [esp]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x43155a
cmp edx, edi
je 0x431562
cmp eax, edx
jb 0x431582
cmp eax, edi
jbe 0x431571
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x405918
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405900
jmp 0x43156f
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x431578
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x431590
jle 0x405946
lea eax, [esi + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x4315ef
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x34]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a6d98]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a6d94]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x43163d
cmp edx, edi
je 0x431645
cmp eax, edx
jb 0x431665
cmp eax, edi
jbe 0x431654
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
mov di, word [eax]
cmp di, word [ecx]
jne 0x4059af
add eax, 2
add ecx, 2
sub edx, 1
jne 0x405997
jmp 0x431652
mov dx, word [eax]
cmp dx, word [ecx]
jb 0x43165b
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x431673
jle 0x431684
mov ecx, dword [0x4a6d94]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x28]
mov dword [eax], ebx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x43168b
add dword [esp + 0x14], 2
mov ax, word [esp + 0xa8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x4316bf
cmp dword [esp + 0x90], 0
mov dword [esp + 0x88], 0x486234
ja 0x4316e3
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x94], 0
call fcn.0041293d
mov eax, dword [esp + 0x28]
inc eax
add esp, 4
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
jle 0x4055d0
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x13c], eax
mov eax, dword [edi]
mov dword [edi + 0x140], edx
mov ecx, dword [eax + 4]
cmp byte [ecx + edi + 0xd], 0
lea esi, [ecx + edi + 4]
jne 0x43170c
push 0x30
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x431784
xor ecx, ecx
mov dword [eax + 8], 1
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 + 0x1c], ecx
mov byte [eax + 0x20], cl
mov edx, dword [esi + 4]
mov dword [eax + 0x28], edx
mov dword [esi + 4], eax
inc dword [esi]
mov eax, dword [edi + 0xec]
mov edx, dword [edi + 0x164]
mov dword [esp + 0xac], eax
lea eax, [edi + 0x164]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xe4]
inc ebx
cmp eax, 0x1268
mov dword [esp + 0x60], edx
mov dword [esp + 0x34], ebx
jge 0x43178d
inc eax
mov dword [edi + 0xe4], eax
cmp eax, 1
je 0x4317a6
cmp byte [edi + 0xf4], 0
mov byte [edi + 0x13c], 0
jne 0x405b4d
jmp 0x405b40
cmp byte [edi + 0x13c], 0
je 0x405ff8
mov eax, dword [edi + 0xe4]
mov byte [edi + 0x13c], 0
cmp eax, 1
je 0x4321ef
dec eax
mov dword [edi + 0xe4], eax
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x14]
cmp esi, dword [edi]
jb 0x432271
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xac]
mov edx, dword [eax]
mov dword [eax + 0xec], ecx
mov ecx, dword [edx + 4]
cmp byte [ecx + eax + 0xd], 0
lea eax, [ecx + eax + 4]
jne 0x43227f
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
je 0x4324a8
cmp byte [eax + 9], 0
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
jne 0x43228a
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je case.default.0x432326
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x432295
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4322a7
cmp eax, 0xa
je 0x4322c8
cmp eax, 5
je 0x4322dd
cmp eax, 0xb
je 0x4322e9
cmp eax, 0xc
je 0x432307
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x43231c
push 0x10
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x432499
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 [esp + 0x18]
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 0x4324a0
cmp byte [eax + 0x18], 0
jne 0x4324c8
cmp byte [esi + 9], 0
jne 0x4324de
mov eax, dword [esi + 4]
cmp byte [eax + 0x20], 0
jne 0x4324e9
cmp byte [esi + 9], 0
jne 0x4324ff
cmp byte [esi + 8], 0
jne 0x43251f
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0xac], ecx
test ebx, ebx
je 0x405d25
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x405cdb
mov eax, dword [edi + 0xc]
dec dword [eax]
mov edx, dword [edi + 0xc]
cmp dword [edx], 0
je 0x432528
push edi
call fcn.0041293d
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x432544
cmp eax, 0xa
je 0x432565
cmp eax, 5
je 0x43257a
cmp eax, 0xb
je 0x432586
cmp eax, 0xc
je 0x4325a4
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041293d
mov edi, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esp + 0xac]
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 0x4325b9
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x134]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x4325c4
mov byte [eax + 0x18], 0
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
cmp byte [eax + 0xd], 0
jne 0x4325cc
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x13c]
mov dword [ecx + 0x1c], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x4325d7
mov byte [eax + 0x20], 0
cmp byte [0x4a5705], 0
jne 0x4325df
mov ecx, dword [0x4a5700]
cmp byte [0x4a5704], 0
jne 0x432601
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0xac], edx
mov dword [esp + 0x30], ecx
test esi, esi
je 0x405e8f
mov eax, dword [esi + 0x18]
test eax, eax
je 0x405dd8
push eax
call fcn.00406b20
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43260d
cmp byte [esi + 0x10], 0
jne 0x405e62
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x405e62
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x405e18
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x43261c
push edi
call fcn.0041293d
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x432638
cmp eax, 0xa
je 0x432659
cmp eax, 5
je 0x43266e
cmp eax, 0xb
je 0x43267a
cmp eax, 0xc
je 0x432698
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0041293d
mov edi, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x405e86
mov edx, dword [esi]
push edx
call fcn.0041293d
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0041293d
add esp, 4
push esi
call fcn.0041293d
add esp, 4
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041293d
mov edx, dword [esp + 0xb0]
add esp, 4
mov dword [0x4a5700], edx
mov byte [0x4a5705], 0
mov eax, dword [esp + 0xfc]
dec dword [0x4a56fc]
mov dword [edi + 0x140], eax
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4326ad
mov eax, dword [esp + 0x40]
cmp eax, 8
je 0x4326c0
cmp eax, 0xa
je 0x4326e5
cmp eax, 5
je 0x4326fc
cmp eax, 0xb
je 0x43270a
cmp eax, 0xc
je 0x43272c
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], esi
test edi, edi
jbe 0x405f31
lea ebx, [ebx]
mov edx, dword [ebx + esi*4]
push edx
call fcn.0041293d
inc esi
add esp, 4
cmp esi, edi
jb 0x405f20
push ebx
call fcn.0041293d
add esp, 4
cmp dword [esp + 0x80], 0
jbe 0x405fd7
xor ebx, ebx
lea ebx, [ebx]
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x405fc9
mov edi, dword [esi + 0xc]
test edi, edi
je 0x405f83
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x432743
push edi
call fcn.0041293d
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x43275f
cmp eax, 0xa
je 0x432780
cmp eax, 5
je 0x432795
cmp eax, 0xb
je 0x4327a1
cmp eax, 0xc
je 0x4327bf
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0041293d
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x80]
jb 0x405f50
mov edx, dword [esp + 0x7c]
push edx
call fcn.0041293d
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.0x405852
cmp byte [0x494cab], 0
jne 0x406048
cmp byte [0x4a5e38], 0
jne 0x4317b4
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
push 1
push 0
push 0
push 0
lea eax, [esp + 0xc4]
push eax
call esi
test eax, eax
jne 0x406230
cmp byte [0x494cae], 1
je 0x4317db
cmp dword [edi + 0xf0], 1
je 0x4321d2
cmp dword [0x4a5df4], 0
jne 0x4317f8
xor ebx, ebx
cmp byte [0x494cb4], 1
je 0x4318aa
cmp dword [edi + 0x46c], ebx
jne 0x4318c4
cmp byte [0x4a5e0c], 0
jne 0x431a09
push edi
call fcn.00404770
cmp al, 1
je case.default.0x431f30
cmp byte [0x4a5f80], 0
jne 0x431c74
mov eax, dword [edi + 0xf0]
cmp eax, 7
je 0x431cfe
cmp eax, 8
je 0x431d89
cmp eax, 9
je 0x431d89
cmp eax, 2
je 0x431ec5
cmp eax, 3
je 0x431ec5
cmp eax, 4
je 0x431ec5
cmp eax, 5
je 0x431ec5
cmp eax, 6
je 0x431ec5
mov ecx, dword [esp + 0x34]
mov dword [edi + 0xec], ecx
mov eax, ecx
inc ecx
cmp eax, dword [0x4a68b8]
mov dword [esp + 0x34], ecx
jg 0x432053
cmp eax, ebx
jle 0x432053
shl eax, 4
add eax, dword [0x4a68ec]
cmp eax, ebx
je 0x432053
mov esi, eax
mov edx, dword [esi + 4]
mov dword [esp + 0x24], ebx
mov edx, dword [edx]
movsx eax, word [edx + 8]
cmp eax, ebx
jne 0x432062
lea eax, [esp + 0x34]
push eax
push esi
push edi
call fcn.00404c50
cmp byte [edi + 0xf4], 0
jne 0x405b4d
xor ecx, ecx
jmp 0x405b40
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x4051c0
jmp 0x430b0b
add eax, eax
cmp eax, 4
jae 0x406177
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x5c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412c2a
mov edx, dword [esp + 0x58]
add esp, 4
lea ecx, [edi*4]
push ecx
push edx
push eax
mov dword [esp + 0x70], eax
call fcn.00412480
mov eax, dword [esp + 0x60]
add esp, 0xc
push eax
call fcn.0041293d
mov ecx, dword [esp + 0x68]
add esp, 4
mov dword [esp + 0x54], ecx
jmp 0x405395
add eax, eax
cmp eax, 4
jae 0x4061d4
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x84], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412c2a
mov ebx, dword [esp + 0x80]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.00412480
add esp, 0xc
push ebx
call fcn.0041293d
add esp, 4
mov dword [esp + 0x7c], edi
jmp 0x405419
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x4059e3
cmp dword [esp + 0xb8], 0x12
je 0x4317c5
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x4a5e00
call fcn.0040e210
test eax, eax
jne 0x40628a
lea edx, [esp + 0xb4]
push edx
mov ebx, 0x4a5e00
call fcn.0040e230
test eax, eax
jne 0x406286
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0xb4]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov edi, dword [esp + 0x18]
push 1
push 0
push 0
push 0
lea edx, [esp + 0xc4]
push edx
call esi
test eax, eax
je 0x40602e
jmp 0x406230
mov esi, 8
jmp 0x40511b
xor eax, eax
jmp 0x40516f
mov eax, dword [esp + 0x5c]
dec dword [eax]
lea esi, [esp + 0x50]
call fcn.004013d0
mov edx, dword [esp + 0x54]
inc edx
push edx
call fcn.00448683
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x58], esi
neg ecx
or ecx, eax
push ecx
call fcn.00412c2a
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x58]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.00412480
add esp, 0xc
mov dword [esp + 0x50], esi
jmp 0x40518d
mov eax, dword [esp + 0x30]
push eax
push 0x6f
jmp 0x4327db
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x138]
sub eax, 1
js 0x430b0b
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
add eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x68]
sar eax, 1
mov ecx, dword [edx + eax*4]
lea esi, [esp + 0x50]
mov dword [esp + 0x1c], eax
call fcn.00407220
test eax, eax
jge 0x430af2
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x48], eax
jmp 0x430b01
jle 0x430b29
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x4c], edx
jle 0x430ab9
lea ecx, [esp + 0x50]
call fcn.00402130
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
push edi
push ebx
push ecx
call fcn.004700c8
jmp 0x405fe6
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x4c], eax
jg 0x430b0b
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edx*4]
lea ecx, [esp + 0x50]
call fcn.00402130
jmp 0x40521e
sub ecx, 0x37
jne 0x4052d3
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0x6f
push eax
jmp 0x4327e0
dec dword [esp + 0x24]
inc eax
jmp 0x4052c2
inc dword [esp + 0x24]
jmp 0x4052d3
mov dword [esp + 0x60], ecx
jmp 0x40531e
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x430b9f
mov bl, 1
jmp 0x430bb0
cmp ecx, 0x1e
jne 0x430f72
mov dword [esp + 0x2c], 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x14]
add eax, 4
cmp word [ecx + 8], 0
je 0x430b8b
jmp 0x405373
xor eax, eax
jmp 0x4053a9
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x74]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x430f7e
mov esi, dword [eax]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.00407570
test al, al
je 0x430f9b
test dword [esp + 0x20], 0x100
je 0x430c3d
test dword [esp + 0x2c], 0x100
jne 0x430c3d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0xb0
push eax
jmp 0x4327e0
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x74], edi
add dword [esp + 0x14], edi
cmp dword [eax + 8], 5
jne 0x430cb2
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x430cb2
mov edx, dword [esp + 0x18]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x80]
call fcn.004077b0
test eax, eax
je 0x430cb2
lea esi, [esp + 0x38]
call fcn.00404420
lea ecx, [esp + 0x50]
call fcn.00435dc8
lea ecx, [esp + 0x78]
call fcn.00411f80
mov eax, edi
jmp 0x405fe6
lea esi, [esp + 0x38]
call fcn.00404420
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x7c]
mov dword [esp + 0x44], 6
mov dword [esp + 0x3c], eax
call fcn.00407050
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x28]
jmp 0x40549d
push eax
call fcn.0044554e
mov dword [esp + 0x44], 0
jmp 0x4053c9
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4053fa
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x38]
push edx
call fcn.0041293d
add esp, 4
jmp 0x4053fa
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4053fa
push eax
call fcn.004465ce
jmp 0x4053fa
lea eax, [esp + 0x38]
call fcn.0040f830
jmp 0x4053fa
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041293d
mov edx, dword [esp + 0x3c]
add esp, 4
push edx
call fcn.0041293d
add esp, 4
jmp 0x4053fa
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4053fa
push eax
call fcn.0044d4ba
jmp 0x4053fa
dec eax
cmp eax, 0xb
ja case.default.0x430d85
jmp dword [eax*4 + 0x43280a]
push 0x10
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430dc2
mov ecx, dword [esp + 0x44]
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 0x40544e
xor eax, eax
mov dword [ebx + 0xc], eax
jmp 0x40544e
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 4], ecx
jmp 0x40544e
fld qword [esp + 0x38]
fstp qword [ebx]
jmp 0x40544e
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
jmp 0x40544e
push 0x214
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430e1b
mov esi, dword [esp + 0x38]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x430e1d
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x430d85
mov eax, dword [eax + 4]
inc dword [eax]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
jmp 0x40544e
cmp dword [esp + 0x38], 0
je case.default.0x430d85
push 0x10
call fcn.00412c2a
add esp, 4
push eax
mov dword [ebx], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esp + 0x38]
mov edx, dword [ebx]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x40544e
mov eax, dword [ebx]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebx]
push ecx
call fcn.0041293d
add esp, 4
mov dword [ebx], 0
jmp 0x40544e
mov dl, byte [esp + 0x38]
mov byte [ebx], dl
jmp 0x40544e
push 0x18
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430ec0
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.0044d995
mov dword [ebx], eax
jmp 0x40544e
xor eax, eax
mov dword [ebx], eax
jmp 0x40544e
push 8
call fcn.00412c2a
mov dword [ebx], eax
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [ebx]
mov eax, dword [edx]
add esp, 4
test eax, eax
je 0x430f15
push eax
call fcn.00412c2a
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.00412480
add esp, 0xc
jmp 0x40544e
push 1
call fcn.00412c2a
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 0x40544e
push 0x14
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x430ec0
mov ecx, dword [esp + 0x38]
push ecx
push eax
call fcn.0047036b
mov dword [ebx], eax
jmp 0x40544e
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
jmp 0x40544e
xor eax, eax
jmp 0x405450
add dword [esp + 0x14], 2
jmp 0x40549d
push 0xffffffffffffffff
push 0x91
jmp 0x4327db
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0x91
push eax
jmp 0x4327e0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x74]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0x79
push eax
jmp 0x4327e0
mov ecx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x4327db
mov dword [esp + 0xa4], esi
jmp 0x40554a
mov edx, dword [0x4a5700]
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [0x4a5700]
mov dword [ecx + 4], eax
mov byte [0x4a5705], 0
jmp 0x4055a4
mov dword [edi + 4], esi
jmp 0x405584
push 0x20
mov dword [esp + 0x24], eax
call fcn.00412c2a
add esp, 4
cmp eax, esi
je 0x431024
push eax
call fcn.0044c8af
jmp 0x431026
xor eax, eax
mov ecx, dword [esp + 0x20]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0040f400
mov edx, dword [edi]
mov esi, dword [esp + 0x20]
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.00451590
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00451590
xor esi, esi
jmp 0x405595
xor edi, edi
jmp 0x405595
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x43109e
push eax
lea ecx, [esp + 0xa4]
call fcn.00406b20
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x4310b6
push eax
lea ecx, [esp + 0xa4]
call fcn.00406b20
cmp byte [edi + 0x10], 0
jne 0x4310d2
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x4310d2
push 1
call fcn.0040f790
push edi
call fcn.0044554e
jmp 0x4055b9
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x4310ff
cmp edi, 0x1e
jne 0x431103
mov dword [esp + 0x2c], 0x100
mov eax, dword [esp + 0x2c]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x4310dd
mov dword [esp + 0x14], esi
jmp 0x40562d
mov edi, dword [esp + 0x7c]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.004370f1
push eax
mov eax, dword [ecx]
push eax
call fcn.0045d6aa
test al, al
je 0x43174b
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x405a04
lea ebx, [esp + 0x88]
call fcn.0040ec10
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 4]
mov dword [esp + 0x9c], 0
mov esi, dword [edx + esi*4 + 8]
movzx eax, word [esi + 8]
cmp ax, 0x4a
je 0x431184
cmp ax, 0x49
je 0x431184
push esi
jmp 0x4311a1
push esi
lea edi, [esp + 0x8c]
call fcn.004027d0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4 + 0xc]
push eax
lea edi, [esp + 0x8c]
call fcn.004027d0
mov edi, 0x7f
lea esi, [esp + 0xa0]
call fcn.00402610
push esi
lea edi, [esp + 0x8c]
call fcn.004027d0
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0xa4]
push eax
push edi
call fcn.004062e0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x60]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x2c]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x30], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x38]
call fcn.004014b0
jmp 0x4059e5
push esi
mov eax, edi
push edx
mov edi, 0x4a56ec
call fcn.00403e60
jmp 0x4059e5
mov ecx, dword [0x4a5700]
mov ebx, dword [ecx + 8]
jmp 0x405695
or dword [0x4a6d9c], 1
push 0x4a6d7c
call fcn.0044c8af
push 0x42a6d3
call fcn.00412926
add esp, 4
xor eax, eax
jmp 0x4056b4
test edx, edx
jne 0x431295
test eax, eax
jne 0x40573b
jmp 0x4056e8
mov ebx, dword [esp + 0x28]
xor eax, eax
jmp 0x40572d
or eax, 0xffffffff
jmp 0x40572d
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.00407250
jmp 0x40572d
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x405748
push eax
push edi
call fcn.00445569
add esp, 8
test al, al
je 0x4312d2
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 0x405748
mov edx, dword [ebx]
mov eax, dword [esp + 0x34]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x4056c7
push edi
push eax
call fcn.00445569
add esp, 8
test al, al
je 0x431317
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 0x405748
mov eax, dword [ebx]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [ebx], edx
jmp 0x4056d0
mov byte [esp + 0x13], 1
jmp 0x405748
mov ebx, dword [ebx]
test ebx, ebx
je 0x405780
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.00404370
jmp 0x4059e5
xor eax, eax
jmp 0x4057e5
xor ebx, ebx
jmp 0x4057ea
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 0x405822
push eax
call fcn.00448683
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x43139f
push eax
call fcn.0041293d
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.00412c2a
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x40580c
xor eax, eax
jmp 0x405886
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
jmp case.default.0x405852
fld qword [edi]
fstp qword [esi]
jmp case.default.0x405852
mov edx, dword [edi]
mov dword [esi], edx
jmp case.default.0x405852
push 0x214
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x431419
mov edx, dword [esp + 0x20]
mov esi, dword [edx]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x43141b
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
cmp dword [eax + 4], 0
je case.default.0x405852
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x405852
cmp dword [edi], ecx
je case.default.0x405852
push 0x10
call fcn.00412c2a
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.0x405852
mov ecx, dword [esi]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esi]
push edx
call fcn.0041293d
add esp, 4
mov dword [esi], 0
jmp case.default.0x405852
mov al, byte [edi]
mov byte [esi], al
jmp case.default.0x405852
push 0x18
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x431530
mov ecx, dword [edi]
push ecx
push eax
call fcn.0044d995
jmp 0x405ff1
push 8
call fcn.00412c2a
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 0x4314f4
push eax
call fcn.00412c2a
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.00412480
add esp, 0xc
jmp case.default.0x405852
push 1
call fcn.00412c2a
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.0x405852
push 0x14
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x431530
mov ecx, dword [edi]
push ecx
push eax
call fcn.0047036b
jmp 0x405ff1
xor eax, eax
jmp 0x405ff1
or dword [0x4a6d9c], 1
push 0x4a6d7c
call fcn.0044c8af
push 0x42a6d3
call fcn.00412926
add esp, 4
jmp 0x4058b3
cmp edx, edi
jne 0x431590
cmp eax, edi
jne 0x405935
jmp 0x4058e6
xor edi, edi
xor eax, eax
jmp 0x40592b
or eax, 0xffffffff
xor edi, edi
jmp 0x40592b
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00407250
jmp 0x40592b
lea eax, [esi + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cmp eax, edi
je 0x405946
push eax
push ebx
mov dword [esp + 0x6c], eax
call fcn.00445569
add esp, 8
test al, al
je 0x4315d9
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x405946
add eax, 0x18
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], esi
mov dword [esp + 0x2c], esi
mov esi, dword [ecx]
jmp 0x4058d0
push ebx
push eax
mov dword [esp + 0x6c], eax
call fcn.00445569
add esp, 8
test al, al
je 0x431627
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x405946
add eax, 0x1c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x34], esi
mov esi, dword [ecx]
jmp 0x4058d0
cmp edx, edi
jne 0x431673
cmp eax, edi
jne 0x4059d0
jmp 0x405981
xor edi, edi
xor eax, eax
jmp 0x4059c2
or eax, 0xffffffff
xor edi, edi
jmp 0x4059c2
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.00407250
jmp 0x4059c2
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x4059df
mov ebx, esi
jmp 0x4059df
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x4316b5
cmp ax, 0x49
je 0x4316b5
add dword [esp + 0x14], 4
jmp 0x405a04
add dword [esp + 0x14], 5
jmp 0x405a04
cmp ax, 0x3f
jg 0x405a1a
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x405a1a
push eax
call fcn.0044554e
jmp 0x405a1a
xor esi, esi
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x4316fd
push eax
call fcn.0044e671
inc esi
cmp esi, dword [esp + 0x90]
jb 0x4316e5
jmp 0x405a33
mov eax, dword [esi + 4]
lea edx, [esp + 0x120]
push edx
push eax
mov dword [esp + 0x130], 1
mov byte [esp + 0x138], 0
mov byte [esp + 0x140], 0
mov byte [esp + 0x148], 0
call fcn.00473b58
mov byte [esi + 9], 0
xor ecx, ecx
jmp 0x405add
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [esp + 0x18]
push edx
push 0x79
push eax
call fcn.0045d2f0
lea ecx, [esp + 0xa0]
push ecx
call fcn.0044d542
lea ecx, [esp + 0x88]
call fcn.00410130
jmp 0x4327e5
xor eax, eax
xor ecx, ecx
jmp 0x405ad4
push 0xffffffffffffffff
push 0x9a
push edi
mov byte [0x494caa], 0
call fcn.0045d2f0
jmp 0x405b6a
mov esi, edi
call fcn.00411bb0
xor ecx, ecx
jmp 0x405b26
cmp dword [edi + 0xf0], ecx
je 0x406048
jmp 0x40600e
mov byte [edi + 0xf4], 1
mov dword [edi + 0xf0], 1
jmp 0x40602e
mov byte [0x494cb4], 0
mov byte [0x494cae], 0
mov dword [edi + 0xf0], 1
jmp 0x40603b
mov eax, dword [0x4a5df8]
mov ebx, dword [eax]
call fcn.00436a1d
mov eax, dword [edi + 0x1a8]
xor esi, esi
test eax, eax
jbe 0x43183b
mov ecx, dword [edi + 0x1a4]
mov edx, dword [ecx]
cmp dword [edx], 0
je 0x43182f
mov edx, dword [edx]
cmp dword [edx], ebx
je 0x43183b
inc esi
add ecx, 4
cmp esi, dword [edi + 0x1a8]
jb 0x43181a
xor ebx, ebx
cmp esi, eax
je 0x406057
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x168]
push ecx
mov ecx, dword [edi + 0x1a4]
lea edx, [esp + 0x158]
push edx
mov edx, dword [ecx + esi*4]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [edx]
mov ecx, dword [eax + 8]
push ecx
push edi
call fcn.004622be
mov edx, dword [edi + 0x1a4]
mov eax, dword [edx + esi*4]
mov ecx, dword [eax]
mov ebx, dword [esp + 0x30]
add ecx, 0x18
inc ebx
push ecx
lea esi, [edi + 0x144]
mov dword [esp + 0x34], ebx
call fcn.0040f400
push 0
push 1
push ebx
push edi
call fcn.0047ffc1
jmp case.default.0x431f30
cmp byte [0x494cab], 0
jne 0x406064
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.default.0x431f30
cmp byte [0x4a6d04], 0
jne 0x406070
mov byte [0x4a6d04], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, dword [edi + 0x464]
mov ebx, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x68], esi
push ecx
lea edx, [esp + 0x6c]
mov dword [esp], 0
push edx
call fcn.00444df5
test al, al
je 0x431998
mov ecx, dword [esi]
cmp byte [ecx + 0x11], 0
jne 0x431980
mov edx, dword [ecx + 0x14]
mov eax, ebx
sub eax, edx
cmp ebx, edx
jae 0x431928
dec eax
cmp eax, dword [ecx + 0x18]
jb 0x431980
inc dword [esp + 0x20]
mov dword [ecx + 0x14], ebx
lea eax, [esp + 0x148]
push eax
lea ecx, [esp + 0x16c]
push ecx
mov ecx, dword [esi]
lea edx, [esp + 0x164]
push edx
mov edx, dword [ecx]
lea eax, [esp + 0x70]
push eax
push edx
push edi
call fcn.004622be
mov eax, dword [esp + 0x64]
mov ecx, dword [esi]
push 0
inc eax
push 1
push eax
push edi
mov dword [esp + 0x74], eax
mov byte [ecx + 0x10], 1
call fcn.0047ffc1
mov edx, dword [esi]
mov byte [edx + 0x10], 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00442d41
mov esi, dword [esp + 0x68]
jmp 0x4318f2
mov edx, dword [edi + 0x464]
mov dword [esp + 0x1c], edx
push ecx
lea eax, [esp + 0x20]
mov dword [esp], 0
push eax
call fcn.00444df5
test al, al
je 0x4319f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
cmp byte [edx + 0x11], 0
jne 0x4319dd
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00442d41
jmp 0x4319a2
lea edx, [esp + 0x1c]
push edx
lea eax, [edi + 0x464]
push eax
call fcn.00444e1f
jmp 0x431998
cmp dword [esp + 0x20], 0
mov byte [0x4a6d04], 0
jg case.default.0x431f30
xor ebx, ebx
jmp 0x406070
cmp byte [edi + 0x470], 1
je 0x40607d
cmp byte [0x4a5e38], 1
je 0x40607d
lea eax, [esp + 0xb4]
push eax
call fcn.0044d019
lea ecx, [esp + 0xb4]
push ecx
push 0x4a5e00
call fcn.0044ff4e
test al, al
je 0x431c63
lea edx, [esp + 0xb8]
push edx
call fcn.0043a8c8
test al, al
jne 0x431a30
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x158]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x58]
push eax
push ecx
push edi
call fcn.004622be
test al, al
je 0x431a30
xor ebx, ebx
mov edi, 1
lea esi, [esp + 0x88]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebx
call fcn.00404420
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x90], edi
mov edi, str._GUI_CTRLID
lea esi, [esp + 0x174]
mov dword [esp + 0x88], edx
call fcn.00401640
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.004014b0
mov ecx, esi
call fcn.00402130
lea esi, [esp + 0x88]
call fcn.00404420
mov eax, dword [esp + 0xc8]
mov edi, str._GUI_WINHANDLE
lea esi, [esp + 0x184]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], eax
call fcn.00401640
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.004014b0
mov ecx, esi
call fcn.00402130
lea esi, [esp + 0x88]
call fcn.00404420
mov ecx, dword [esp + 0xcc]
mov edi, str._GUI_CTRLHANDLE
lea esi, [esp + 0x194]
mov dword [esp + 0x90], 7
mov dword [esp + 0x88], ecx
call fcn.00401640
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0x88]
call fcn.004014b0
mov ecx, esi
call fcn.00402130
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push ebx
push 1
inc edx
push edx
push esi
mov byte [esi + 0x470], 1
call fcn.0047ffc1
mov byte [esi + 0x470], bl
lea esi, [esp + 0x88]
jmp 0x431c49
xor ebx, ebx
mov edi, 1
lea esi, [esp + 0xe8]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], ebx
call fcn.00404420
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xf0], edi
mov edi, str._TRAY_ID
lea esi, [esp + 0x1a4]
mov dword [esp + 0xe8], edx
call fcn.00401640
lea eax, [ebx + 2]
lea ecx, [ebx + 1]
lea edx, [esp + 0xe8]
call fcn.004014b0
mov ecx, esi
call fcn.00402130
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
push ebx
push 1
inc eax
push eax
push esi
mov byte [esi + 0x471], 1
call fcn.0047ffc1
mov byte [esi + 0x471], bl
lea esi, [esp + 0xe8]
call fcn.00404420
lea ecx, [esp + 0xb8]
call fcn.00402130
mov edi, dword [esp + 0x18]
jmp case.default.0x431f30
lea ecx, [esp + 0xb8]
call fcn.00402130
jmp 0x40607d
cmp byte [edi + 0x471], 1
je 0x406098
lea eax, [esp + 0xb4]
push eax
call fcn.0044d019
lea ecx, [esp + 0xb4]
push ecx
push 0x4a5ee0
call fcn.00451d0c
test al, al
je 0x431ced
lea edx, [esp + 0xb8]
push edx
call fcn.0043a8c8
test al, al
jne 0x431c8e
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x174]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0x38]
push eax
push ecx
push edi
call fcn.004622be
test al, al
je 0x431c8e
jmp 0x431bbb
lea ecx, [esp + 0xb8]
call fcn.00402130
jmp 0x406098
mov ecx, dword [edi + 0x45c]
push 0xa
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esp + 0x9c], eax
cmp eax, 0x102
je case.default.0x431f30
mov eax, dword [edi + 0x45c]
lea edx, [esp + 0x9c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov ecx, dword [edi + 0x45c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x9c]
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], edx
jmp 0x431d6c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x460], ebx
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], ebx
add eax, edi
lea ecx, [esp + 0x68]
call fcn.0040e420
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
jmp case.default.0x431f30
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call esi
cmp dword [edi + 0x454], ebx
je 0x431dd5
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x458]
cmp eax, ecx
jae 0x431dbb
sub eax, ecx
dec eax
jmp 0x431dbd
sub eax, ecx
cmp eax, dword [edi + 0x454]
jb 0x431dd5
mov eax, dword [edi + 0x460]
cmp eax, ebx
je 0x431d63
jmp 0x431d56
mov ecx, dword [edi + 0x444]
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.004460e5
add esp, 0xc
cmp dword [edi + 0xf0], 9
jne 0x431e1a
cmp byte [esp + 0x13], 0
jne 0x431e10
mov byte [esp + 0x13], 1
jmp 0x431e25
mov byte [esp + 0x13], 0
jmp case.default.0x431f30
cmp byte [esp + 0x13], 1
jne case.default.0x431f30
mov eax, dword [edi + 0x460]
mov dword [esp + 0x48], 0xcccccccc
cmp eax, ebx
je 0x431e5a
lea edx, [esp + 0x48]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [edi + 0x460]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x460], ebx
cmp dword [edi + 0xf0], 8
jne 0x431e98
mov ecx, dword [esp + 0x28]
fild dword [esp + 0x28]
test ecx, ecx
jge 0x431e7d
fadd qword [0x48d260]
mov eax, dword [edi]
fstp qword [esp + 0x68]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x68]
push edx
add ecx, edi
push ecx
call fcn.00455430
jmp 0x431eaa
mov eax, dword [edi]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + 4]
push ebx
push edx
add eax, edi
call fcn.00403c10
mov ecx, dword [edi + 0x2fc]
push ecx
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call esi
jmp case.default.0x431f30
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [edi + 0x2f8], ebx
je 0x431f1e
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [edi + 0x300]
cmp eax, ecx
jae 0x431ef5
sub eax, ecx
dec eax
jmp 0x431ef7
sub eax, ecx
cmp eax, dword [edi + 0x2f8]
jb 0x431f1e
cmp dword [edi + 0xf0], 2
je 0x431d77
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov dword [esp + 0x68], ebx
jmp 0x431d6c
mov eax, dword [edi + 0xf0]
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x431f30
jmp dword [eax*4 + 0x43283a]
push edi
call fcn.0046b696
jmp 0x431f65
push edi
call fcn.0046b696
mov esi, eax
cmp esi, ebx
jl 0x431f6f
jg case.default.0x431f30
jmp 0x431fa5
push 1
push edi
call fcn.0046ad85
mov esi, eax
cmp esi, ebx
jge 0x431f97
mov ecx, dword [edi]
mov eax, esi
neg eax
push ebx
push eax
mov eax, dword [ecx + 4]
add eax, edi
call fcn.00403c50
mov edx, dword [edi]
mov eax, dword [edx + 4]
add eax, edi
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], ebx
call fcn.0040e420
cmp esi, ebx
je case.default.0x431f30
cmp esi, ebx
jle 0x432015
mov eax, dword [edi + 0xf0]
cmp eax, 5
je 0x431fbd
cmp eax, 3
jne 0x432015
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x1d8]
mov ebx, dword [eax]
lea esi, [esp + 0xd8]
mov dword [esp + 0xe0], 1
call fcn.00404420
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 0
push esi
add eax, edi
push eax
mov dword [esp + 0xec], 7
mov dword [esp + 0xe4], ebx
call fcn.0047317a
call fcn.00404420
xor ebx, ebx
mov ecx, dword [edi + 0x2fc]
push ecx
mov byte [edi + 0x13c], 1
mov dword [edi + 0xf0], ebx
call fcn.00437de2
add esp, 4
jmp case.default.0x431f30
push 1
push edi
call fcn.0046ad85
mov esi, eax
cmp esi, ebx
jl 0x431f6f
jle 0x431fa5
jmp case.default.0x431f30
mov dword [edi + 0xf0], 1
jmp case.default.0x431f30
dec eax
cmp eax, 0x7e
ja case.0x432073.2
movzx eax, byte [eax + 0x432862]
jmp dword [eax*4 + 0x43284a]
push edi
mov eax, esi
call fcn.004044a0
jmp case.default.0x431f30
lea ecx, [esp + 0x100]
push ecx
push edi
lea ecx, [esp + 0x2c]
mov edx, esi
mov dword [esp + 0x108], ebx
mov dword [esp + 0x110], 1
mov dword [esp + 0x114], ebx
call fcn.00404180
test eax, eax
jne 0x4320de
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x4320de
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.0045d2f0
lea esi, [esp + 0x100]
call fcn.00404420
jmp case.default.0x431f30
lea edx, [esp + 0xb3]
push edx
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
mov ecx, edi
mov dword [esp + 0x120], ebx
mov dword [esp + 0x128], 1
mov dword [esp + 0x12c], ebx
call fcn.004050d0
test eax, eax
jne 0x43214f
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x7f
je 0x43214f
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push edi
call fcn.0045d2f0
lea esi, [esp + 0x110]
call fcn.00404420
jmp case.default.0x431f30
lea ebx, [edi + 0x490]
push ebx
call fcn.00437002
test al, al
jne 0x432189
movsx edx, word [edx + 0xa]
push edx
push 0xa7
push edi
call fcn.0045d2f0
jmp case.default.0x431f30
push ebx
lea eax, [esp + 0x28]
push eax
push esi
push edi
call fcn.00481147
test eax, eax
je case.default.0x431f30
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edx*4]
movsx ecx, word [eax + 0xa]
push ecx
push 0xaa
push edi
call fcn.0045d2f0
jmp case.default.0x431f30
movsx edx, word [edx + 0xa]
push edx
push 0x1388
push edi
call fcn.0045d2f0
jmp case.default.0x431f30
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
add eax, edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.0040e420
jmp 0x405b4d
mov esi, edi
call fcn.00401040
cmp byte [edi + 0xf4], 1
je 0x405b6a
push edi
call fcn.00401570
push 0
call dword [sym.imp.USER32.dll_LockWindowUpdate]
mov edx, dword [0x494ce0]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x1c0]
push eax
call esi
test eax, eax
jle 0x405b6a
lea ecx, [esp + 0x1b4]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x1b4]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x1c0]
push eax
call esi
test eax, eax
jg 0x43223c
jmp 0x405b6a
call fcn.00407a30
cmp esi, dword [edi]
jb 0x432271
jmp 0x405b7a
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x28]
jmp 0x405ba2
mov edx, dword [eax + 4]
mov esi, dword [edx + 0x28]
jmp 0x405bbf
push eax
call fcn.0044554e
mov dword [ebx + 0xc], 0
jmp 0x405bd5
mov ecx, dword [ebx]
test ecx, ecx
je 0x405be1
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041293d
add esp, 4
jmp 0x405c05
mov eax, dword [ebx]
test eax, eax
je 0x405c05
push eax
call fcn.004465ce
jmp 0x405c05
mov eax, ebx
call fcn.0040f830
jmp 0x405c05
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041293d
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041293d
add esp, 4
jmp 0x405c05
mov eax, dword [ebx]
test eax, eax
je 0x405c05
push eax
call fcn.0044d4ba
jmp 0x405c05
dec eax
cmp eax, 0xb
ja case.default.0x432326
jmp dword [eax*4 + 0x4328e2]
mov edx, dword [esi]
mov dword [ebx], edx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
jmp case.default.0x432326
mov ecx, dword [esi]
mov dword [ebx], ecx
jmp case.default.0x432326
fld qword [esi]
fstp qword [ebx]
jmp case.default.0x432326
mov edx, dword [esi]
mov dword [ebx], edx
jmp case.default.0x432326
push 0x214
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x43237c
mov esi, dword [esi]
mov ecx, 0x85
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x43237e
xor eax, eax
mov dword [ebx], eax
cmp dword [eax + 4], 0
je case.default.0x432326
mov eax, dword [eax + 4]
inc dword [eax]
jmp case.default.0x432326
cmp dword [esi], 0
je case.default.0x432326
push 0x10
call fcn.00412c2a
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.0x432326
mov edx, dword [ebx]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041293d
add esp, 4
mov dword [ebx], 0
jmp case.default.0x432326
mov cl, byte [esi]
mov byte [ebx], cl
jmp case.default.0x432326
push 0x18
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x43240e
mov edx, dword [esi]
push edx
push eax
call fcn.0044d995
mov dword [ebx], eax
jmp case.default.0x432326
xor eax, eax
mov dword [ebx], eax
jmp case.default.0x432326
push 8
call fcn.00412c2a
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 0x43245f
push eax
call fcn.00412c2a
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.00412480
add esp, 0xc
jmp case.default.0x432326
push 1
call fcn.00412c2a
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.0x432326
push 0x14
call fcn.00412c2a
add esp, 4
test eax, eax
je 0x43240e
mov ecx, dword [esi]
push ecx
push eax
call fcn.0047036b
mov dword [ebx], eax
jmp case.default.0x432326
xor eax, eax
jmp 0x405c4e
mov eax, dword [eax + 0x28]
jmp 0x405c6d
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00404420
mov dword [esi + 8], 1
mov dword [esi], 0
jmp case.default.0x432326
mov eax, esi
call fcn.00403c40
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x134], ecx
jmp 0x405c77
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x28]
jmp 0x405c84
mov eax, esi
call fcn.00403c40
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x13c], eax
jmp 0x405c8e
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x28]
test eax, eax
je 0x432513
push eax
call fcn.0044da03
mov dword [esi + 4], ebx
mov byte [esi + 9], 0
jmp 0x405c98
mov byte [esi + 9], 1
jmp 0x405d33
mov eax, dword [edi]
push eax
call fcn.0041293d
mov ecx, dword [edi + 0xc]
add esp, 4
push ecx
call fcn.0041293d
add esp, 4
jmp 0x405ccb
mov ecx, dword [ebx]
test ecx, ecx
je 0x405ce7
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebx]
push edx
call fcn.0041293d
add esp, 4
jmp 0x405d0b
mov eax, dword [ebx]
test eax, eax
je 0x405d0b
push eax
call fcn.004465ce
jmp 0x405d0b
mov eax, ebx
call fcn.0040f830
jmp 0x405d0b
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041293d
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0041293d
add esp, 4
jmp 0x405d0b
mov eax, dword [ebx]
test eax, eax
je 0x405d0b
push eax
call fcn.0044d4ba
jmp 0x405d0b
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x405d49
mov eax, dword [eax + 0x28]
jmp 0x405d60
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x28]
jmp 0x405d78
mov eax, dword [eax + 0x28]
jmp 0x405d8f
mov eax, dword [0x4a5700]
mov esi, dword [eax + 8]
push eax
call fcn.0046b975
mov ecx, esi
mov dword [0x4a5700], ecx
mov byte [0x4a5705], 0
jmp 0x405da6
mov byte [0x4a5705], 1
jmp 0x405eb0
mov ecx, dword [esp + 0x30]
push eax
call fcn.00406b20
jmp 0x405de3
mov ecx, dword [edi]
push ecx
call fcn.0041293d
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0041293d
add esp, 4
jmp 0x405e08
mov ecx, dword [ebx]
test ecx, ecx
je 0x405e24
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebx]
push eax
call fcn.0041293d
add esp, 4
jmp 0x405e48
mov eax, dword [ebx]
test eax, eax
je 0x405e48
push eax
call fcn.004465ce
jmp 0x405e48
mov eax, ebx
call fcn.0040f830
jmp 0x405e48
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0041293d
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0041293d
add esp, 4
jmp 0x405e48
mov eax, dword [ebx]
test eax, eax
je 0x405e48
push eax
call fcn.0044d4ba
jmp 0x405e48
push eax
call fcn.0044554e
mov dword [esp + 0x44], 0
jmp 0x405ecf
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405f00
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041293d
add esp, 4
jmp 0x405f00
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405f00
push eax
call fcn.004465ce
jmp 0x405f00
lea eax, [esp + 0x38]
call fcn.0040f830
jmp 0x405f00
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 4]
push eax
call fcn.0041293d
mov ecx, dword [esp + 0x3c]
add esp, 4
push ecx
call fcn.0041293d
add esp, 4
jmp 0x405f00
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405f00
push eax
call fcn.0044d4ba
jmp 0x405f00
mov edx, dword [edi]
push edx
call fcn.0041293d
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0041293d
add esp, 4
jmp 0x405f73
mov ecx, dword [esi]
test ecx, ecx
je 0x405f8f
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esi]
push ecx
call fcn.0041293d
add esp, 4
jmp 0x405fb3
mov eax, dword [esi]
test eax, eax
je 0x405fb3
push eax
call fcn.004465ce
jmp 0x405fb3
mov eax, esi
call fcn.0040f830
jmp 0x405fb3
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0041293d
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0041293d
add esp, 4
jmp 0x405fb3
mov eax, dword [esi]
test eax, eax
je 0x405fb3
push eax
call fcn.0044d4ba
jmp 0x405fb3
mov eax, dword [esp + 0x30]
push eax
push 0x70
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0045d2f0
lea esi, [esp + 0x38]
call fcn.00404420
lea ecx, [esp + 0x50]
call fcn.00435dc8
lea ecx, [esp + 0x78]
call fcn.00411f80
mov eax, 1
jmp 0x405fe6