Function at 0x4196a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x44500c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x445608]
mov ebx, esi
push edi
mov edi, ecx
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebx + 0x1be0]
and byte [edi + 0x95], 0xfd
cmp dword [edi + 0x10], 0
mov dword [edi + 0x78], eax
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
jne 0x4197d2
call fcn.004193a0
xor ecx, ecx
xor edx, edx
xor esi, esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp dword [edi + 0x1c], ecx
jle 0x41970b
mov edx, edi
mov ecx, 1
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov eax, dword [edi + 8]
shr eax, 0xb
test al, 1
cmovne esi, edi
mov dword [ebp - 0x24], esi
cmp ecx, 1
jle 0x419722
test esi, esi
jne 0x419756
mov eax, dword [edi + 0x14]
test eax, eax
je 0x41973c
lea edx, [ebp - 0x24]
mov ecx, eax
call fcn.00419350
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov eax, dword [edi + 0x18]
test eax, eax
je 0x419756
lea edx, [ebp - 0x24]
mov ecx, eax
call fcn.00419350
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
xor eax, eax
mov dword [edi + 0x70], esi
cmp ecx, 1
cmove eax, edx
cmp dword [edi + 0x84], 0
mov dword [edi + 0x74], eax
jne 0x419779
test edx, edx
je 0x4197cc
mov eax, dword [edx]
mov dword [edi + 0x84], eax
test edx, edx
je 0x4197cc
mov eax, dword [edx + 0x24]
mov ecx, 1
mov eax, dword [eax]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x58], xmm0
mov esi, dword [edx + 0x1c]
cmp esi, ecx
jle 0x4197cc
mov ebx, dword [edx + 0x24]
lea edx, [ebx + 4]
mov eax, dword [edx]
cmp byte [eax + 0x2d], 0
je 0x4197b6
inc ecx
add edx, 4
cmp ecx, esi
jl 0x4197a4
jmp 0x4197c9
mov eax, dword [ebx + ecx*4]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x58], xmm0
mov ebx, dword [ebp - 0x3c]
mov esi, dword [0x445608]
cmp dword [edi + 0x28], 0
je 0x4197ef
mov eax, dword [edi + 8]
shr eax, 0xc
test al, 1
je 0x4197ef
mov ecx, edi
call fcn.0041b770
mov esi, dword [0x445608]
mov edx, dword [edi + 0x1c]
cmp edx, 1
jg 0x41996f
cmp dword [edi + 0x10], 0
jne 0x41996f
test dword [edi + 8], 0x400
jne 0x41996f
cmp dword [edi + 0x14], 0
jne 0x41996f
cmp byte [ebx + 0xb1], 0
jne 0x41996f
lea ebx, [edi + 0x24]
test edx, edx
je 0x4198ce
mov eax, dword [ebx]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x41996f
cmp edx, 1
jne 0x4198ce
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
mov dword [edi + 0x34], eax
mov eax, dword [edi + 0x90]
and eax, 0xfffffebf
mov dword [edi + 0x38], ecx
or eax, 0x80
and eax, 0xffffffd7
or eax, 0x10
and eax, 0xfffffffa
or eax, 2
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x68]
test eax, eax
je 0x4198a2
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + 0x1e18], eax
jne 0x4198a2
mov ecx, esi
call fcn.0040fd70
mov eax, dword [edi + 0x68]
test eax, eax
je 0x4198ce
mov ecx, dword [eax + 0x30]
mov dword [esi + 0x30], ecx
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x68]
cmp byte [eax + 0xc2], 0
je 0x4198ce
mov dword [ecx + 0x6c], esi
mov byte [esi + 0xc2], 1
mov eax, dword [edi + 0x68]
test eax, eax
je 0x4198ee
cmp dword [eax + 0x3c0], edi
jne 0x4198e7
mov dword [eax + 0x3c0], 0
mov dword [edi + 0x68], 0
cmp dword [edi + 0x1c], 1
jne 0x419904
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov dword [edi + 0x6c], eax
mov eax, dword [ecx]
and byte [eax + 0x3a1], 0xfe
cmp dword [edi + 0x28], 0
je 0x419911
mov ecx, edi
call fcn.0041b770
mov dl, byte [edi + 0x94]
mov eax, dword [ebp - 0x3c]
and dl, 0xef
and dl, 0xf3
mov dword [edi + 0xc], 1
mov dword [edi + 0x8c], 0
mov byte [edi + 0x94], dl
mov eax, dword [eax + 0x1be0]
mov dword [edi + 0x7c], eax
test dl, 0x40
je 0x41a275
cmp dword [edi + 0x1c], 1
jne 0x41a275
mov edx, dword [ebx]
mov ecx, edi
mov edx, dword [edx]
call fcn.004195d0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043c4d6
mov esp, ebp
pop ebp
ret
mov bl, byte [edi + 0x94]
test bl, 1
je 0x419a0d
cmp dword [edi + 0x68], 0
jne 0x419a0d
cmp dword [edi + 0x10], 0
jne 0x419a0d
test dword [edi + 8], 0x400
jne 0x419a0d
cmp dword [edi + 0x14], 0
jne 0x419a0d
cmp dword [edi + 0x88], 0
je 0x4199db
xor ecx, ecx
test edx, edx
jle 0x4199db
mov edx, dword [edi + 0x24]
mov eax, dword [edx]
mov esi, dword [edi + 0x88]
cmp dword [eax + 4], esi
mov esi, dword [0x445608]
je 0x4199d1
inc ecx
add edx, 4
cmp ecx, dword [edi + 0x1c]
jl 0x4199b3
jmp 0x4199db
mov eax, dword [edi + 0x24]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x4199e0
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0xdc], 0
jg 0x4199f2
cmp byte [eax + 0xdd], 0
jle 0x419a0a
mov dword [edi + 0xc], 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043c4d6
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
or eax, ecx
mov dword [ebp - 0x34], eax
test edx, edx
jle 0x419a33
test eax, 0x4000
jne 0x419a33
and bl, 0xfb
or bl, 8
mov byte [edi + 0x94], bl
xor ebx, ebx
jmp 0x419a42
and bl, 0xf3
mov byte [edi + 0x94], bl
xor ebx, ebx
test edx, edx
jle 0x419a89
mov eax, dword [edi + 0x24]
mov cl, byte [edi + 0x94]
mov edx, dword [eax + ebx*4]
mov al, byte [edx + 0xcc]
shl al, 2
or al, cl
and cl, 0xfb
and al, 4
xor al, cl
cmp dword [edi + 0x1c], 1
mov byte [edi + 0x94], al
mov al, byte [edx + 0x3a1]
setg cl
and al, 0xfe
inc ebx
or cl, al
mov byte [edx + 0x3a1], cl
cmp ebx, dword [edi + 0x1c]
jl 0x419a42
mov ecx, dword [edi + 8]
mov eax, dword [ebp - 0x34]
test eax, 0x8000
je 0x419a97
and byte [edi + 0x94], 0xfb
xor ebx, ebx
shr ecx, 0xa
mov byte [ebp - 0x35], bl
test cl, 1
je 0x419aac
mov ebx, dword [edi + 0x68]
jmp 0x419d47
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x419d1a
test byte [edi + 0x94], 1
je 0x419d2a
cmp dword [edi + 0x1c], ebx
jle 0x419ad0
mov eax, dword [edi + 0x24]
mov edx, dword [eax]
jmp 0x419ad2
xor edx, edx
mov eax, dword [edi + 0x90]
shl eax, 0x1d
sar eax, 0x1d
cmp eax, 2
jne 0x419af6
test edx, edx
je 0x419b30
or dword [esi + 0x1cd0], 1
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x48]
jmp 0x419b07
cmp eax, 1
jne 0x419b30
or dword [esi + 0x1cd0], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
mov byte [esi + 0x1d0c], 1
mov dword [esi + 0x1cd4], 1
mov dword [esi + 0x1cf0], ebx
mov dword [esi + 0x1cec], ebx
mov dword [esi + 0x1ce8], ecx
mov dword [esi + 0x1ce4], eax
mov eax, dword [edi + 0x90]
shl eax, 0x1a
sar eax, 0x1d
cmp eax, 2
jne 0x419b53
test edx, edx
je 0x419b7b
or dword [esi + 0x1cd0], eax
mov eax, dword [edx + 0x54]
mov ecx, dword [edx + 0x58]
jmp 0x419b65
cmp eax, 1
jne 0x419b7b
or dword [esi + 0x1cd0], 2
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov dword [esi + 0x1cd8], 1
mov dword [esi + 0x1cf8], ecx
mov dword [esi + 0x1cf4], eax
mov eax, dword [edi + 0x90]
and al, 0x38
cmp al, 0x10
jne 0x419ba8
test edx, edx
je 0x419ba8
mov al, byte [edx + 0xc6]
or dword [esi + 0x1cd0], 8
mov byte [esi + 0x1d0d], al
mov dword [esi + 0x1cdc], 1
mov eax, dword [edi + 0x90]
and eax, 0x1c0
cmp eax, 0x80
jne 0x419bd1
test edx, edx
je 0x419bd1
mov eax, dword [edx + 0x34]
or dword [esi + 0x1cd0], 0x100
mov dword [esi + 0x1d2c], eax
or dword [esi + 0x1cd0], 0x400
lea eax, [ebp - 0x18]
movups xmm0, xmmword [edi + 0x48]
movups xmmword [esi + 0x1d34], xmm0
movups xmm0, xmmword [edi + 0x58]
movups xmmword [esi + 0x1d44], xmm0
push dword [edi]
push str.DockNode__02X
push 0x14
push eax
call fcn.00402eb0
mov esi, dword [0x445608]
lea eax, [ebp - 0x48]
add esp, 0x10
mov dword [ebp - 0x48], 1
movss xmm1, dword [esi + 0x159c]
lea ecx, [esi + 0x1d7c]
movss xmm0, dword [esi + 0x15a0]
push eax
movss dword [ebp - 0x44], xmm1
movss dword [ebp - 0x40], xmm0
call fcn.0041fb30
push 0x20081139
xor edx, edx
mov dword [esi + 0x159c], ebx
lea ecx, [ebp - 0x18]
mov dword [esi + 0x15a0], ebx
call fcn.0040c770
mov esi, dword [0x445608]
add esp, 4
mov eax, dword [esi + 0x1d7c]
mov edx, dword [esi + 0x1d84]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*4 - 0xc]
lea eax, [eax + eax*2]
cmp dword [eax*4 + 0x43e878], 8
mov ebx, dword [eax*4 + 0x43e880]
jne 0x419cbb
mov eax, dword [eax*4 + 0x43e87c]
cmp eax, 1
jne 0x419ca0
mov eax, dword [edx + ecx*4 - 8]
mov dword [ebx + esi + 0x1598], eax
jmp 0x419cbb
cmp eax, 2
jne 0x419cbb
mov eax, dword [edx + ecx*4 - 8]
mov dword [ebx + esi + 0x1598], eax
mov eax, dword [edx + ecx*4 - 4]
mov dword [ebx + esi + 0x159c], eax
dec dword [esi + 0x1d7c]
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 0x35], 1
mov ebx, dword [eax + 0x1c48]
mov dword [edi + 0x68], ebx
movss xmm0, dword [ebx + 0x44]
movss xmm1, dword [ebx + 0x48]
mov dword [ebx + 0x3c0], edi
movss dword [ebx + 0x108], xmm0
movss dword [ebx + 0x10c], xmm1
movss dword [edi + 0x2c], xmm0
movss dword [edi + 0x30], xmm1
mov ecx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x4c]
mov dword [edi + 0x38], ecx
mov ecx, dword [edi + 0x68]
mov dword [edi + 0x34], eax
cmp byte [ecx + 0xc9], 0
je 0x419d20
call fcn.0040fcf0
jmp 0x419d20
mov ebx, dword [eax + 0x68]
mov dword [edi + 0x68], ebx
and dword [edi + 0x90], 0xfffffe00
test byte [edi + 0x94], 0x40
je 0x419d47
mov edx, dword [edi + 0x68]
test edx, edx
je 0x419d47
mov ecx, edi
call fcn.004195d0
mov esi, dword [0x445608]
cmp dword [edi + 0x10], 0
jne 0x419dbf
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x1e18]
test eax, eax
je 0x419d7a
mov eax, dword [eax + 0x35c]
mov ecx, dword [eax + 0x3bc]
test ecx, ecx
je 0x419d7a
cmp dword [eax + 0x358], ebx
jne 0x419d7a
mov eax, dword [ecx]
mov dword [edi + 0x84], eax
mov ecx, dword [ebp - 0x34]
test ebx, ebx
je 0x419dc2
mov eax, ecx
and eax, 8
mov dword [ebp - 0x34], eax
je 0x419dc2
mov ecx, dword [ebx + 0x2c4]
sub esp, 8
add ecx, 0x78
mov byte [ebp - 0x2b], 1
call fcn.0042a870
mov ecx, dword [ebx + 0x2c4]
push 1
push ecx
add ecx, 0x78
call fcn.0042ae30
mov esi, dword [0x445608]
mov ecx, dword [ebp - 0x34]
mov dh, byte [ebp - 0x2b]
jmp 0x419dcd
mov ecx, dword [ebp - 0x34]
xor dh, dh
and ecx, 8
mov byte [ebp - 0x2b], dh
mov dword [ebp - 0x34], ecx
cmp dword [edi + 0x10], 0
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x50], eax
jne 0x419fcc
test ebx, ebx
je 0x419fcc
test ecx, ecx
je 0x419fcc
test eax, eax
je 0x419fcc
cmp dword [eax + 0x14], 0
jne 0x419fcc
cmp dword [eax + 0x1c], 0
jne 0x419fcc
xor eax, eax
mov byte [ebp - 0x2a], 1
cmp byte [esi + 0x1f5c], al
lea ecx, [esi + 0x1f6c]
mov esi, dword [ebp - 0x30]
cmove ecx, eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], ecx
mov al, dh
mov byte [ebp - 0x29], al
test ecx, ecx
je 0x419ea1
cmp dword [ecx + 0x10], 0xffffffff
je 0x419e98
add ecx, 0x14
mov eax, str._IMWINDOW
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x419e61
test dl, dl
je 0x419e5d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x419e61
add eax, 2
add ecx, 2
test dl, dl
jne 0x419e41
xor eax, eax
jmp 0x419e66
sbb eax, eax
or eax, 1
test eax, eax
jne 0x419e98
mov esi, dword [ebp - 0x30]
mov al, dh
mov edx, dword [ebp - 0x40]
mov ecx, ebx
mov byte [ebp - 0x29], al
mov dword [ebp - 0x34], esi
mov edx, dword [edx]
mov edx, dword [edx]
call fcn.0041b7e0
test al, al
je 0x419ea1
mov al, byte [ebp - 0x2b]
mov edx, dword [edi + 0x10]
mov cl, byte [ebp - 0x2a]
mov byte [ebp - 0x29], al
jmp 0x419fe6
mov esi, dword [ebp - 0x30]
mov byte [ebp - 0x29], dh
mov dword [ebp - 0x34], esi
mov edx, dword [ebp - 0x50]
mov ecx, edx
mov eax, dword [edx + 0x10]
test eax, eax
je 0x419eb9
nop dword [eax]
mov ecx, eax
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x419eb0
movss xmm4, dword [edx + 0x2c]
comiss xmm4, dword [ecx + 0x2c]
movss xmm6, dword [ecx + 0x30]
movaps xmm3, xmm4
movss xmm1, dword [edx + 0x30]
movaps xmm7, xmm6
movss xmm5, dword [ecx + 0x2c]
movaps xmm2, xmm1
addss xmm5, dword [ecx + 0x34]
addss xmm7, dword [ecx + 0x38]
addss xmm3, dword [edx + 0x34]
addss xmm2, dword [edx + 0x38]
movss xmm0, dword [0x442e8c]
jbe 0x419efc
addss xmm4, xmm0
comiss xmm5, xmm3
jbe 0x419f05
subss xmm3, xmm0
comiss xmm1, xmm6
jbe 0x419f0e
addss xmm1, xmm0
comiss xmm7, xmm2
jbe 0x419f17
subss xmm2, xmm0
comiss xmm4, xmm3
ja 0x419fc1
comiss xmm1, xmm2
ja 0x419fc1
subss xmm3, xmm4
mov ecx, dword [ebx + 0x358]
subss xmm2, xmm1
movaps xmm0, xmm4
cvttss2si esi, xmm3
cvttss2si edx, xmm2
mov word [ebp - 0x30], si
mov word [ebp - 0x2e], dx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x288], eax
subss xmm0, dword [ebx + 0x44]
cvttss2si eax, xmm0
movaps xmm0, xmm1
subss xmm0, dword [ebx + 0x48]
mov word [ebp - 0x30], ax
cvttss2si eax, xmm0
mov word [ebp - 0x2e], ax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x28c], eax
mov word [ebp - 0x2e], dx
mov word [ebp - 0x30], si
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x288], eax
subss xmm4, dword [ecx + 0x44]
subss xmm1, dword [ecx + 0x48]
cvttss2si eax, xmm4
mov word [ebp - 0x30], ax
cvttss2si eax, xmm1
mov word [ebp - 0x2e], ax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x28c], eax
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp - 0x29]
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x34], ecx
mov cl, byte [ebp - 0x2a]
mov byte [ebp - 0x29], al
jmp 0x419fe3
mov edx, dword [edi + 0x10]
mov al, byte [ebp - 0x29]
mov cl, byte [ebp - 0x2a]
jmp 0x419fe6
mov byte [ebp - 0x2a], 0
mov al, dh
mov edx, dword [edi + 0x10]
mov cl, byte [ebp - 0x2a]
mov byte [ebp - 0x29], al
test ebx, ebx
je 0x41a08a
mov esi, dword [ebp - 0x34]
mov byte [ebp - 0x2c], cl
mov ah, al
mov byte [ebp - 0x2b], ah
test edx, edx
jne 0x41a017
push dword [ebx + 0x50]
xor dl, dl
mov ecx, edi
push dword [ebx + 0x4c]
push dword [ebx + 0x48]
push dword [ebx + 0x44]
call fcn.0041d010
add esp, 0x10
mov ecx, edi
call fcn.0041d360
mov cl, byte [ebp - 0x2c]
mov ah, byte [ebp - 0x2b]
cmp dword [edi + 0x14], 0
jne 0x41a08a
cmp dword [edi + 0x1c], 0
jne 0x41a08a
test byte [edi + 0x94], 1
mov al, ah
mov byte [ebp - 0x2a], cl
je 0x41a08d
mov byte [ebp - 0x2a], cl
test esi, esi
jne 0x41a08d
movss xmm0, dword [edi + 0x2c]
lea edx, [edi + 0x2c]
addss xmm0, dword [edi + 0x34]
movss xmm1, dword [0x442e3c]
push esi
push ecx
lea ecx, [esi + 0x27]
mov dword [esp], esi
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [edi + 0x38]
addss xmm0, dword [edx + 4]
movss dword [ebp - 0x40], xmm0
call fcn.004035e0
mov ecx, dword [ebx + 0x2c4]
push eax
lea eax, [ebp - 0x44]
push eax
push edx
call fcn.0042a420
mov cl, byte [ebp - 0x2c]
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x2a], cl
jmp 0x41a08d
mov al, byte [ebp - 0x29]
test al, al
je 0x41a1aa
test byte [edi + 0x94], 1
je 0x41a1aa
mov ecx, dword [ebx + 0x2c4]
push 0
push ecx
add ecx, 0x78
call fcn.0042ae30
cmp byte [ebp - 0x2a], 0
lea edx, [edi + 0x2c]
je 0x41a151
mov eax, dword [ebp - 0x50]
sub esp, 0x10
mov ecx, 2
movss xmm0, dword [eax + 0x30]
movss xmm1, dword [eax + 0x2c]
movss dword [ebp - 0x24], xmm0
addss xmm0, dword [eax + 0x38]
movss dword [ebp - 0x28], xmm1
addss xmm1, dword [eax + 0x34]
mov eax, esp
sub esp, 0x10
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [ebp - 0x48], xmm0
addss xmm0, dword [edi + 0x38]
movss dword [ebp - 0x20], xmm1
movss xmm1, dword [edx]
movss dword [ebp - 0x4c], xmm1
addss xmm1, dword [edi + 0x34]
movss dword [ebp - 0x40], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax], xmm0
mov eax, esp
movss dword [ebp - 0x44], xmm1
movups xmm0, xmmword [ebp - 0x4c]
movss xmm1, dword [0x442e3c]
movups xmmword [eax], xmm0
call fcn.004035e0
mov ecx, dword [ebx + 0x2c4]
xorps xmm2, xmm2
mov edx, eax
call fcn.0042edc0
add esp, 0x20
jmp 0x41a19b
movss xmm0, dword [edi + 0x34]
addss xmm0, dword [edx]
movss xmm1, dword [0x442e3c]
push 0
push ecx
mov ecx, 2
mov dword [esp], 0
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [edx + 4]
addss xmm0, dword [edi + 0x38]
movss dword [ebp - 0x40], xmm0
call fcn.004035e0
mov ecx, dword [ebx + 0x2c4]
push eax
lea eax, [ebp - 0x44]
push eax
push edx
call fcn.0042a420
mov ecx, dword [ebx + 0x2c4]
push ecx
add ecx, 0x78
call fcn.0042a990
test ebx, ebx
je 0x41a1bf
cmp dword [edi + 0x1c], 0
jle 0x41a1bf
mov edx, ebx
mov ecx, edi
call fcn.0041a4a0
jmp 0x41a1d9
mov al, byte [edi + 0x94]
and al, 0xef
mov dword [edi + 0x8c], 0
and al, 0xfd
mov byte [edi + 0x94], al
mov eax, dword [edi + 0x28]
test eax, eax
je 0x41a1e7
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x41a1f5
cmp dword [edi + 0x1c], 0
jle 0x41a1fb
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x88], eax
test ebx, ebx
je 0x41a235
test byte [edi + 0x94], 1
je 0x41a235
cmp dword [edi + 0x10], 0
jne 0x41a235
mov esi, dword [ebp - 0x3c]
mov eax, dword [esi + 0x1c58]
test eax, eax
je 0x41a223
cmp dword [eax + 0x360], ebx
je 0x41a235
mov ecx, ebx
call fcn.0041e3c0
mov eax, dword [esi + 0x1be0]
mov dword [edi + 0x7c], eax
jmp 0x41a245
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x1be0]
mov dword [edi + 0x7c], eax
test ebx, ebx
je 0x41a26a
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x41a251
call fcn.004196a0
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x41a25d
call fcn.004196a0
cmp dword [edi + 0x10], 0
jne 0x41a26a
mov ecx, ebx
call fcn.0040b5b0
cmp byte [ebp - 0x35], 0
je 0x41a275
call fcn.0040fb00
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043c4d6
mov esp, ebp
pop ebp
ret